cos对象上传返回的字典为
{ 'ETag': 'string' }
没有返回url,官方提供了获取预签名 URL和获取预签名下载 URL的方法
get_presigned_url() 和 get_presigned_download_url()
尝试结果返回带了一堆参数,不是我想要的,当然可以选择自己组装url,格式如下:
scheme + '://' + bucket + '.cos.' + region + '.myqcloud.com/' + fileurl
scheme:指定使用 http/https 协议来访问 COS,默认为 https,可不填
bucket:储存桶
region:替换为用户的 Region
fileurl:唯一上传文件名,带路径
或者修改 “python目录/site-packages/qcloud_cos/cos_client.py”
我使用的是断点续传的方法
upload_file(Bucket, Key, LocalFilePath, PartSize=1, MAXThread=5, **kwargs)
那么调用的是put_object()函数,修改put_object函数:
response = dict(**rt.headers)
下方添加
response['url'] = url
防止后期sdk升级,上传返回url获取使用如下:
if('url' in response):
# 修改了cos_client.py
return response['url']
else:
# 自己组装url
return scheme + '://' + bucket + '.cos.' + region + '.myqcloud.com/' + fileurl
是不是觉得多此一举了?直接直接组装不就好了?我主要还是不相信COS这个url组装样式永远不变的~为了自己放心点而已。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。