11# -*- coding=utf-8
2+ import base64
23
34from qcloud_cos import CosConfig
45from qcloud_cos import CosS3Client
1314
1415logging .basicConfig (level = logging .INFO , stream = sys .stdout )
1516
16- # 设置用户属性, 包括 secret_id, secret_key, region等。Appid 已在CosConfig中移除,请在参数 Bucket 中带上 Appid。Bucket 由 BucketName-Appid 组成
17- # secret_id = os.environ["SECRETID"] # 替换为用户的 SecretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
18- # secret_key = os.environ["SECRETKEY"] # 替换为用户的 SecretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
19-
2017secret_id = os .environ ["SECRETID" ] # 替换为用户的 SecretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
2118secret_key = os .environ ["SECRETKEY" ] # 替换为用户的 SecretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
2219region = 'ap-chongqing' # 替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
3128
3229
3330def ci_get_file_hash ():
34- response = client .file_hash (Bucket = bucket_name , Key = "mytest.mp4" , Type = 'md5' )
31+ # 同步获取文件哈希值
32+ response = client .file_hash (
33+ Bucket = bucket_name , # 文件所在的桶名称
34+ Key = "mytest.mp4" , # 需要获取哈希值的文件名
35+ Type = 'md5' , # 哈希算法类型,有效值:md5、sha1、sha256.
36+ AddToHeader = True # 是否将计算得到的哈希值,自动添加至文件的自定义header. 格式为:x-cos-meta-md5/sha1/sha256; 有效值: True、False,不填则默认为False.
37+ )
3538 print (response )
3639 return response
3740
3841
3942def ci_create_file_hash_job ():
43+ # 创建获取文件哈希值异步任务
4044 body = {
45+ # 获取文件哈希值配置详情
46+
47+ # 哈希值的算法类型
48+ # 必选,有效值:MD5、SHA1、SHA256。
4149 'Type' : 'MD5' ,
50+ # 是否将计算得到的哈希值添加至文件自定义header,自定义header根据Type的值变化,例如Type值为MD5时,自定义header为 x-cos-meta-md5。
51+ # 非必选,有效值:true、false,默认值为 false。
52+ 'AddToHeader' : 'true'
53+ }
54+ mq_config = {
55+ # 消息队列所属园区
56+ # 必选。目前支持园区 sh(上海)、bj(北京)、gz(广州)、cd(成都)、hk(中国香港)
57+ 'MqRegion' : 'bj' ,
58+ # 消息队列使用模式
59+ # 必选。主题订阅:Topic 队列服务: Queue
60+ 'MqMode' : 'Queue' ,
61+ # TDMQ 主题名称 必选。
62+ 'MqName' : 'queueName'
4263 }
4364 response = client .ci_create_file_hash_job (
44- Bucket = bucket_name ,
45- InputObject = "mytest.mp4" ,
46- FileHashCodeConfig = body
65+ Bucket = bucket_name , # 文件所在的桶名称
66+ InputObject = "mytest.mp4" , # 需要获取哈希值的文件名
67+ FileHashCodeConfig = body , # 获取文件哈希值配置详情
68+ CallBack = "http://www.callback.com" , # 回调url地址,当 CallBackType 参数值为 Url 时有效
69+ CallBackFormat = "JSON" , # 回调信息格式 JSON 或 XML,默认 XML
70+ CallBackType = "Url" , # 回调类型,Url 或 TDMQ,默认 Url
71+ CallBackMqConfig = mq_config , # 任务回调TDMQ配置,当 CallBackType 为 TDMQ 时必填
72+ UserData = "this is my user data" # 透传用户信息, 可打印的 ASCII 码, 长度不超过1024
4773 )
4874 print (response )
4975 return response
5076
5177
5278def ci_create_file_uncompress_job ():
79+ # 创建获取文件解压异步任务
5380 body = {
54- 'Prefix' : 'output/' ,
81+ # 文件解压配置详情
82+
83+ # 指定解压后输出文件的前缀,不填则默认保存在存储桶根路径,非必选
84+ 'Prefix' : 'zip/' ,
85+ # 解压密钥,传入时需先经过 base64 编码。非必选
86+ 'UnCompressKey' : base64 .b64encode ("123456" .encode ("utf-8" )).decode ('utf-8' ),
87+ # 指定解压后的文件路径是否需要替换前缀,有效值:
88+ # - 0:不添加额外的前缀,解压缩将保存在Prefix指定的路径下(不会保留压缩包的名称,仅将压缩包内的文件保存至指定的路径)。
89+ # - 1:以压缩包本身的名称作为前缀,解压缩将保存在Prefix指定的路径下。
90+ # - 2:以压缩包完整路径作为前缀,此时如果不指定Prefix,就是解压到压缩包所在的当前路径(包含压缩包本身名称)。
91+ # - 非必选,默认值为0
92+ 'PrefixReplaced' : '0'
93+ }
94+ mq_config = {
95+ # 消息队列所属园区
96+ # 必选。目前支持园区 sh(上海)、bj(北京)、gz(广州)、cd(成都)、hk(中国香港)
97+ 'MqRegion' : 'bj' ,
98+ # 消息队列使用模式
99+ # 必选。主题订阅:Topic 队列服务: Queue
100+ 'MqMode' : 'Queue' ,
101+ # TDMQ 主题名称 必选。
102+ 'MqName' : 'queueName'
55103 }
56104 response = client .ci_create_file_uncompress_job (
57- Bucket = bucket_name ,
58- InputObject = 'test.zip' ,
59- FileUncompressConfig = body
105+ Bucket = bucket_name , # 文件所在的桶名称
106+ InputObject = 'zip/testmi.zip' , # 需要解压的文件名
107+ OutputBucket = bucket_name , # 指定输出文件所在的桶名称
108+ OutputRegion = region , # 指定输出文件所在的地域
109+ FileUncompressConfig = body , # 文件解压配置详情
110+ CallBack = "http://www.callback.com" , # 回调url地址,当 CallBackType 参数值为 Url 时有效
111+ CallBackFormat = "JSON" , # 回调信息格式 JSON 或 XML,默认 XML
112+ CallBackType = "Url" , # 回调类型,Url 或 TDMQ,默认 Url
113+ CallBackMqConfig = mq_config , # 任务回调TDMQ配置,当 CallBackType 为 TDMQ 时必填
114+ UserData = "this is my user data" # 透传用户信息, 可打印的 ASCII 码, 长度不超过1024
60115 )
61116 print (response )
62117 return response
63118
64119
65120def ci_create_file_compress_job ():
121+ # 创建获取文件压缩异步任务
66122 body = {
123+ # 文件打包时,是否需要去除源文件已有的目录结构
124+ # 必选,有效值:
125+ # 0:不需要去除目录结构,打包后压缩包中的文件会保留原有的目录结构
126+ # 1:需要,打包后压缩包内的文件会去除原有的目录结构,所有文件都在同一层级
127+ # 例如:源文件 URL 为 https://domain/source/test.mp4, 则源文件路径为 source/test.mp4
128+ # 如果为 1,则 ZIP 包中该文件路径为 test.mp4
129+ # 如果为 0,ZIP 包中该文件路径为 source/test.mp4
67130 'Flatten' : '0' ,
131+ # 打包压缩的类型
132+ # 必选,有效值:zip、tar、tar.gz。
68133 'Format' : 'zip' ,
69- 'Prefix' : '/' ,
134+ # 压缩类型,仅在Format为tar.gz或zip时有效。
135+ # faster:压缩速度较快
136+ # better:压缩质量较高,体积较小
137+ # default:适中的压缩方式
138+ # 非必选,默认值为default
139+ 'Type' : 'faster' ,
140+ # 压缩包密钥,传入时需先经过 base64 编码, 编码后长度不能超过128。当 Format 为 zip 时生效
141+ # 非必选
142+ 'CompressKey' : base64 .b64encode ("123456" .encode ("utf-8" )).decode ('utf-8' ),
143+
144+ # 下列参数UrlList、Prefix、Key 三者仅能选择一个,不能都为空,也不会同时生效。如果填了多个,会按优先级 UrlList > Prefix > Key 取最高优先级执行。
145+
146+ # UrlList 支持将需要打包的文件整理成索引文件,后台将根据索引文件内提供的文件 url,打包为一个压缩包文件。
147+ # 索引文件需要保存在当前存储桶中,本字段需要提供索引文件的对象地址,例如:/test/index.csv。
148+ # 索引文件格式:仅支持 CSV 文件,一行一条 URL(仅支持本存储桶文件),如有多列字段,默认取第一列作为URL。最多不超过10000个文件,总大小不超过50G
149+ # 非必选
150+ 'UrlList' : '' ,
151+ # 支持对存储桶中的某个前缀进行打包,如果需要对某个目录进行打包,需要加/,
152+ # 例如test目录打包,则值为:test/。最多不超过10000个文件,总大小不超过50G,否则会导致任务失败。
153+ # 非必选
154+ 'Prefix' : 'zip/' ,
155+ # 支持对存储桶中的多个文件进行打包,个数不能超过 1000。
156+ # 非必选
157+ 'Key' : ['zip/1.png' , 'zip/2.png' , 'zip/3.png' ]
158+ }
159+ mq_config = {
160+ # 消息队列所属园区
161+ # 必选。目前支持园区 sh(上海)、bj(北京)、gz(广州)、cd(成都)、hk(中国香港)
162+ 'MqRegion' : 'bj' ,
163+ # 消息队列使用模式
164+ # 必选。主题订阅:Topic 队列服务: Queue
165+ 'MqMode' : 'Queue' ,
166+ # TDMQ 主题名称 必选。
167+ 'MqName' : 'queueName'
70168 }
71169 response = client .ci_create_file_compress_job (
72- Bucket = bucket_name ,
73- OutputBucket = bucket_name ,
74- OutputRegion = 'ap-guangzhou' ,
75- OutputObject = 'result.zip' ,
76- FileCompressConfig = body ,
77- CallBack = "http://www.callback.com" ,
78- CallBackType = "Url" ,
79- CallBackFormat = "XML" ,
80- UserData = "my data"
170+ Bucket = bucket_name , # 文件所在的桶名称
171+ OutputBucket = bucket_name , # 指定输出文件所在的桶名称
172+ OutputRegion = region , # 指定输出文件所在的地域
173+ OutputObject = 'zip/result.zip' , # 指定输出文件名
174+ FileCompressConfig = body , # 指定压缩配置
175+ CallBack = "http://www.callback.com" , # 回调url地址,当 CallBackType 参数值为 Url 时有效
176+ CallBackFormat = "JSON" , # 回调信息格式 JSON 或 XML,默认 XML
177+ CallBackType = "Url" , # 回调类型,Url 或 TDMQ,默认 Url
178+ CallBackMqConfig = mq_config , # 任务回调TDMQ配置,当 CallBackType 为 TDMQ 时必填
179+ UserData = "this is my user data" # 透传用户信息, 可打印的 ASCII 码, 长度不超过1024
81180 )
82181 print (response )
83182 return response
84183
85184
86185def ci_get_file_process_jobs ():
186+ # 获取文件处理异步任务结果详情
87187 response = client .ci_get_file_process_jobs (
88- Bucket = bucket_name ,
89- JobIDs = 'fcb9a9f90e57611ed9************' ,
188+ Bucket = bucket_name , # 任务所在桶名称
189+ JobIDs = 'f7325938a256611xxxxxxxxxxx' , # 文件处理异步任务ID
90190 )
91191 print (response )
92192 return response
93193
94194
95195def ci_get_zip_preview ():
96- response = client .ci_file_zip_preview (Bucket = bucket_name , Key = "result.zip" )
196+ # 压缩包预览同步请求
197+ response = client .ci_file_zip_preview (
198+ Bucket = bucket_name , # 压缩文件所在桶名称
199+ Key = "zip/test.zip" # 需要预览的压缩文件名
200+ )
97201 print (response )
98202 return response
99203
@@ -103,5 +207,5 @@ def ci_get_zip_preview():
103207 # ci_create_file_hash_job()
104208 # ci_create_file_uncompress_job()
105209 # ci_create_file_compress_job()
106- # ci_get_zip_preview()
107- ci_get_file_process_jobs ()
210+ ci_get_zip_preview ()
211+ # ci_get_file_process_jobs()
0 commit comments