Skip to content

Commit b25d5b1

Browse files
authored
Merge pull request #320 from l-iberty/master
fix disater_recovery_demo
2 parents 4f1d677 + 9f6d4e7 commit b25d5b1

File tree

1 file changed

+10
-23
lines changed

1 file changed

+10
-23
lines changed

demo/disaster_recovery_demo.py

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
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+
63
from qcloud_cos import CosConfig
74
from qcloud_cos import CosS3Client
85
import sys
@@ -12,10 +9,9 @@
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 = ''
@@ -35,8 +31,7 @@ def _recover_main(src_region, src_secret_id, src_secret_key, src_bucket, prefix,
3531
delete_marker_keys.append(version['Key'])
3632

3733
if len(delete_marker_keys) == 0:
38-
print('no delete markers found, no data to recover')
39-
return
34+
print('no delete markers found, no data to recover, continue listing')
4035

4136
# 从 Version 取最新的版本号
4237
if 'Version' in response:
@@ -46,8 +41,8 @@ def _recover_main(src_region, src_secret_id, src_secret_key, src_bucket, prefix,
4641
if key in delete_marker_keys and not key in recovered_keys:
4742
print('recover from key:{key}, versionId:{versionId}'.format(key=key, versionId=versionId))
4843
try:
49-
dst_client.copy(
50-
Bucket=dst_bucket,
44+
src_client.copy(
45+
Bucket=src_bucket,
5146
Key=key,
5247
CopySource={
5348
'Bucket': src_bucket,
@@ -57,8 +52,8 @@ def _recover_main(src_region, src_secret_id, src_secret_key, src_bucket, prefix,
5752
}
5853
)
5954
recovered_keys.append(key)
60-
print("success recover object: {src_bucket}/{key}({versionId}) => {dst_bucket}/{key}".format(
61-
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))
6257
except Exception as e:
6358
print(e)
6459
pass
@@ -72,22 +67,14 @@ def _recover_main(src_region, src_secret_id, src_secret_key, src_bucket, prefix,
7267

7368
if __name__ == '__main__':
7469
# 使用场景:
75-
# 根据源桶src_bucket的删除标记从历史版本里把文件恢复到dst_bucket
76-
# src_bucket和dst_bucket可以一致, 即原地恢复
70+
# 根据源桶src_bucket的删除标记从历史版本里把文件恢复出来
7771

7872
# 源桶信息
7973
src_region = 'ap-guangzhou' # 源地域
8074
src_secret_id = '' # 源桶SecretID
8175
src_secret_key = '' # 源桶SecretKey
8276
src_bucket = 'bucket-1200000000' # 源桶名
8377

84-
# 目标桶信息
85-
dst_region = 'ap-guangzhou' # 目标桶地域
86-
dst_secret_id = '' # 目标桶SecretID
87-
dst_secret_key = '' # 目标桶SecretKey
88-
dst_bucket = 'bucket-1250000000' # 目标桶名
89-
9078
prefix = '' # 设置要恢复的对象前缀
9179

92-
_recover_main(src_region, src_secret_id, src_secret_key, src_bucket, prefix,
93-
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

Comments
 (0)