Skip to content

Commit 46913ca

Browse files
authored
Merge pull request #129 from jayzhenghan/master
fix long Integer compatibility issue of python2 and python3
2 parents 795121c + 8e30a10 commit 46913ca

File tree

5 files changed

+105
-6
lines changed

5 files changed

+105
-6
lines changed

qcloud_cos/cos_client.py

Lines changed: 79 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2809,9 +2809,7 @@ def list_buckets(self, **kwargs):
28092809
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
28102810
client = CosS3Client(config)
28112811
# 获取账户下所有存储桶信息
2812-
response = logging_client.list_buckets(
2813-
Bucket='bucket'
2814-
)
2812+
response = client.list_buckets()
28152813
"""
28162814
headers = mapped(kwargs)
28172815
url = '{scheme}://service.cos.myqcloud.com/'.format(scheme=self._conf._scheme)
@@ -3427,6 +3425,84 @@ def update_object_meta(self, Bucket, Key, **kwargs):
34273425
)
34283426
return response
34293427

3428+
def put_bucket_encryption(self, Bucket, ServerSideEncryptionConfiguration={}, **kwargs):
3429+
"""设置执行存储桶下的默认加密配置
3430+
3431+
:param Bucket(string): 存储桶名称.
3432+
:param ServerSideEncryptionConfiguration(dict): 设置Bucket的加密规则
3433+
:param kwargs(dict): 设置请求的headers.
3434+
:return: None.
3435+
"""
3436+
# 类型为list的标签
3437+
lst = [
3438+
'<Rule>',
3439+
'</Rule>'
3440+
]
3441+
xml_config = format_xml(data=ServerSideEncryptionConfiguration, root='ServerSideEncryptionConfiguration', lst=lst)
3442+
headers = mapped(kwargs)
3443+
params = {'encryption': ''}
3444+
url = self._conf.uri(bucket=Bucket)
3445+
logger.info("put bucket encryption, url=:{url} ,headers=:{headers}".format(
3446+
url=url,
3447+
headers=headers))
3448+
rt = self.send_request(
3449+
method='PUT',
3450+
url=url,
3451+
bucket=Bucket,
3452+
auth=CosS3Auth(self._conf, params=params),
3453+
data=xml_config,
3454+
headers=headers,
3455+
params=params)
3456+
3457+
return None
3458+
3459+
def get_bucket_encryption(self, Bucket, **kwargs):
3460+
"""获取存储桶下的默认加密配置
3461+
3462+
:param Bucket(string): 存储桶名称.
3463+
:param kwargs(dict): 设置请求的headers.
3464+
:return(dict): 返回bucket的加密规则.
3465+
"""
3466+
headers = mapped(kwargs)
3467+
params = {'encryption': ''}
3468+
url = self._conf.uri(bucket=Bucket)
3469+
logger.info("get bucket encryption, url=:{url} ,headers=:{headers}".format(
3470+
url=url,
3471+
headers=headers))
3472+
rt = self.send_request(
3473+
method='GET',
3474+
url=url,
3475+
bucket=Bucket,
3476+
auth=CosS3Auth(self._conf, params=params),
3477+
headers=headers,
3478+
params=params)
3479+
3480+
data = xml_to_dict(rt.content)
3481+
format_dict(data, ['Rule'])
3482+
return data
3483+
3484+
def delete_bucket_encryption(self, Bucket, **kwargs):
3485+
"""用于删除指定存储桶下的默认加密配置
3486+
3487+
:param Bucket(string): 存储桶名称.
3488+
:param kwargs(dict): 设置请求的headers.
3489+
:return: None.
3490+
"""
3491+
headers = mapped(kwargs)
3492+
params = {'encryption': ''}
3493+
url = self._conf.uri(bucket=Bucket)
3494+
logger.info("delete bucket encryption, url=:{url} ,headers=:{headers}".format(
3495+
url=url,
3496+
headers=headers))
3497+
rt = self.send_request(
3498+
method='DELETE',
3499+
url=url,
3500+
bucket=Bucket,
3501+
auth=CosS3Auth(self._conf, params=params),
3502+
headers=headers,
3503+
params=params)
3504+
3505+
return None
34303506
def put_async_fetch_task(self, Bucket, FetchTaskConfiguration={}, **kwargs):
34313507
"""发起异步拉取对象到COS的任务
34323508

qcloud_cos/resumable_downloader.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ def __del_record(self):
179179

180180
def __check_crc(self):
181181
logger.debug('start to check crc')
182-
c64 = crcmod.mkCrcFun(0x142F0E1EBA9EA3693L, initCrc=0L, xorOut=0xffffffffffffffffL, rev=True)
182+
c64 = crcmod.mkCrcFun(0x142F0E1EBA9EA3693, initCrc=0, xorOut=0xffffffffffffffff, rev=True)
183183
with open(self.__dest_file_path, 'rb') as f:
184184
local_crc64 = str(c64(f.read()))
185185
object_crc64 = self.__object_info['x-cos-hash-crc64ecma']

qcloud_cos/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11

2-
__version__ = '5.1.8.2'
2+
__version__ = '5.1.8.3'

setup.py

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

1717
setup(
1818
name='cos-python-sdk-v5',
19-
version='1.8.2',
19+
version='1.8.3',
2020
url='https://www.qcloud.com/',
2121
license='MIT',
2222
author='tiedu, lewzylu, channingliu',

ut/test.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1212,6 +1212,29 @@ def test_download_file():
12121212
if os.path.exists(file_name):
12131213
os.remove(file_name)
12141214

1215+
def test_bucket_encryption():
1216+
"""测试存储桶默认加密配置"""
1217+
# 测试设置存储桶的默认加密配置
1218+
config_dict = {
1219+
'Rule': [
1220+
{
1221+
'ApplySideEncryptionConfiguration': {
1222+
'SSEAlgorithm': 'AES256',
1223+
}
1224+
},
1225+
]
1226+
}
1227+
client.put_bucket_encryption(test_bucket, config_dict)
1228+
1229+
# 测试获取存储桶默认加密配置
1230+
ret = client.get_bucket_encryption(test_bucket)
1231+
sse_algorithm = ret['Rule'][0]['ApplyServerSideEncryptionByDefault']['SSEAlgorithm']
1232+
assert(sse_algorithm == 'AES256')
1233+
1234+
# 删除存储桶默认加密配置
1235+
client.delete_bucket_encryption(test_bucket)
1236+
1237+
12151238
if __name__ == "__main__":
12161239
setUp()
12171240
"""

0 commit comments

Comments
 (0)