11# -*- coding=utf-8
2- #
3- # ref to @shezhangjun
4- # https://github.com/shezhangjun/TencentCOS/blob/master/Python_SDK/COS_Disaster_Recovery/DisasterRecovery.py
5- #
2+
63from qcloud_cos import CosConfig
74from qcloud_cos import CosS3Client
85import sys
129# logging.basicConfig(level=logging.INFO, stream=sys.stdout)
1310
1411
15- def _recover_main (src_region , src_secret_id , src_secret_key , src_bucket , prefix ,
16- dst_region , dst_secret_id , dst_secret_key , dst_bucket ):
12+ def _recover_main (src_region , src_secret_id , src_secret_key , src_bucket , prefix ):
13+
1714 src_client = CosS3Client (CosConfig (Region = src_region , SecretId = src_secret_id , SecretKey = src_secret_key ))
18- dst_client = CosS3Client (CosConfig (Region = dst_region , SecretId = dst_secret_id , SecretKey = dst_secret_key ))
1915
2016 key_marker = ''
2117 versionId_marker = ''
@@ -45,8 +41,8 @@ def _recover_main(src_region, src_secret_id, src_secret_key, src_bucket, prefix,
4541 if key in delete_marker_keys and not key in recovered_keys :
4642 print ('recover from key:{key}, versionId:{versionId}' .format (key = key , versionId = versionId ))
4743 try :
48- dst_client .copy (
49- Bucket = dst_bucket ,
44+ src_client .copy (
45+ Bucket = src_bucket ,
5046 Key = key ,
5147 CopySource = {
5248 'Bucket' : src_bucket ,
@@ -56,8 +52,8 @@ def _recover_main(src_region, src_secret_id, src_secret_key, src_bucket, prefix,
5652 }
5753 )
5854 recovered_keys .append (key )
59- print ("success recover object: {src_bucket}/{ key}({versionId}) => {dst_bucket}/ {key}" .format (
60- src_bucket = src_bucket , key = key , versionId = versionId , dst_bucket = dst_bucket ))
55+ print ("success recover object: {key}(versionId= {versionId}) => {key}" .format (
56+ src_bucket = src_bucket , key = key , versionId = versionId ))
6157 except Exception as e :
6258 print (e )
6359 pass
@@ -71,22 +67,14 @@ def _recover_main(src_region, src_secret_id, src_secret_key, src_bucket, prefix,
7167
7268if __name__ == '__main__' :
7369 # 使用场景:
74- # 根据源桶src_bucket的删除标记从历史版本里把文件恢复到dst_bucket
75- # src_bucket和dst_bucket可以一致, 即原地恢复
70+ # 根据源桶src_bucket的删除标记从历史版本里把文件恢复出来
7671
7772 # 源桶信息
7873 src_region = 'ap-guangzhou' # 源地域
7974 src_secret_id = '' # 源桶SecretID
8075 src_secret_key = '' # 源桶SecretKey
8176 src_bucket = 'bucket-1200000000' # 源桶名
8277
83- # 目标桶信息
84- dst_region = 'ap-guangzhou' # 目标桶地域
85- dst_secret_id = '' # 目标桶SecretID
86- dst_secret_key = '' # 目标桶SecretKey
87- dst_bucket = 'bucket-1250000000' # 目标桶名
88-
8978 prefix = '' # 设置要恢复的对象前缀
9079
91- _recover_main (src_region , src_secret_id , src_secret_key , src_bucket , prefix ,
92- dst_region , dst_secret_id , dst_secret_key , dst_bucket )
80+ _recover_main (src_region , src_secret_id , src_secret_key , src_bucket , prefix )
0 commit comments