Skip to content

Commit 6df60c7

Browse files
authored
Merge pull request #304 from tencentyun/feature_libertyzhu_b4da84dc
bugfix & optimization
2 parents a8ff550 + b8da854 commit 6df60c7

File tree

3 files changed

+17
-19
lines changed

3 files changed

+17
-19
lines changed

qcloud_cos/cos_client.py

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -806,7 +806,7 @@ def delete_object(self, Bucket, Key, **kwargs):
806806
method='DELETE',
807807
url=url,
808808
bucket=Bucket,
809-
auth=CosS3Auth(self._conf, Key),
809+
auth=CosS3Auth(self._conf, Key, params),
810810
headers=headers,
811811
params=params)
812812
data = dict(**rt.headers)
@@ -2680,11 +2680,8 @@ def put_bucket_domain_certificate(self, Bucket, DomainCertificateConfiguration,
26802680
headers = mapped(kwargs)
26812681
headers['Content-MD5'] = get_md5(xml_config)
26822682
headers['Content-Type'] = 'application/xml'
2683-
# params = {'domaincertificate': ''}
2684-
# 目前 Domain Certificate API 不能使用 params 传递 query_string '?domaincertificate=',
2685-
# 只能将'?domaincertificate'拼接到url
2683+
params = {'domaincertificate': ''}
26862684
url = self._conf.uri(bucket=Bucket)
2687-
url += '?domaincertificate'
26882685
logger.info("put bucket domain certificate, url=:{url} ,headers=:{headers}".format(
26892686
url=url,
26902687
headers=headers))
@@ -2693,8 +2690,9 @@ def put_bucket_domain_certificate(self, Bucket, DomainCertificateConfiguration,
26932690
url=url,
26942691
bucket=Bucket,
26952692
data=xml_config,
2696-
auth=CosS3Auth(self._conf),
2697-
headers=headers)
2693+
auth=CosS3Auth(self._conf, params=params),
2694+
headers=headers,
2695+
params=params)
26982696
return None
26992697

27002698
def get_bucket_domain_certificate(self, Bucket, DomainName, **kwargs):
@@ -2715,12 +2713,8 @@ def get_bucket_domain_certificate(self, Bucket, DomainName, **kwargs):
27152713
)
27162714
"""
27172715
headers = mapped(kwargs)
2718-
# 目前 Domain Certificate API 不能使用 params 传递 query_string '?domaincertificate=',
2719-
# 只能将'?domaincertificate'拼接到url
2720-
# params = {'domaincertificate': '', 'domainname': DomainName}
2721-
params = {'domainname': DomainName}
2716+
params = {'domaincertificate': '', 'domainname': DomainName}
27222717
url = self._conf.uri(bucket=Bucket)
2723-
url += '?domaincertificate'
27242718
logger.info("get bucket domain certificate, url=:{url} ,headers=:{headers}".format(
27252719
url=url,
27262720
headers=headers))
@@ -2752,12 +2746,8 @@ def delete_bucket_domain_certificate(self, Bucket, DomainName, **kwargs):
27522746
)
27532747
"""
27542748
headers = mapped(kwargs)
2755-
# 目前 Domain Certificate API 不能使用 params 传递 query_string '?domaincertificate=',
2756-
# 只能将'?domaincertificate'拼接到url
2757-
# params = {'domaincertificate': '', 'domainname': DomainName}
2758-
params = {'domainname': DomainName}
2749+
params = {'domaincertificate': '', 'domainname': DomainName}
27592750
url = self._conf.uri(bucket=Bucket)
2760-
url += "?domaincertificate"
27612751
logger.info("delete bucket domain certificate, url=:{url} ,headers=:{headers}".format(
27622752
url=url,
27632753
headers=headers))

qcloud_cos/resumable_downloader.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import json
44
import os
55
import sys
6+
import errno
67
import threading
78
import logging
89
import uuid
@@ -45,7 +46,14 @@ def __init__(self, cos_client, bucket, key, dest_filename, object_info, part_siz
4546
self.__tmp_file = None
4647

4748
if not os.path.exists(self.__dump_record_dir):
48-
os.makedirs(self.__dump_record_dir)
49+
# 多进程并发情况下makedirs会出现冲突, 需要进行异常捕获
50+
try:
51+
os.makedirs(self.__dump_record_dir)
52+
except OSError as e:
53+
if e.errno != errno.EEXIST:
54+
logger.error('os makedir error: dir: {0}, errno {1}'.format(self.__dump_record_dir), e.errno)
55+
raise
56+
pass
4957
logger.debug('resumale downloader init finish, bucket: {0}, key: {1}'.format(bucket, key))
5058

5159
def start(self):

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def long_description():
3232

3333

3434
setup(
35-
name='cos-python-sdk-v5',
35+
name='cos_python_sdk_v5', # comply with PEP 625
3636
version='1.9.34',
3737
url='https://www.qcloud.com/',
3838
license='MIT',

0 commit comments

Comments
 (0)