Files
OBS_Undelete_all_objects/undelete.py
Damir Ibragimov 5c9e9c29bc Update 2 files
- /install.sh
- /undelete.py
2024-07-18 08:05:05 +00:00

71 lines
1.3 KiB
Python

import os
import traceback
from obs import ObsClient, Versions
bucket = input(f"""Insert bucket name: """)
prefiks = input(f"""Insert prefix for bucket: """)
ak = os.getenv(
"AKID"
)
sk = os.getenv(
"SKID"
)
endpoint = os.getenv(
"OBSENDPOINT"
)
obsClient = ObsClient(
access_key_id = ak,
secret_access_key = sk,
server = endpoint
)
try:
undeleteVersions = []
mark = None
index = 1
while True:
listing = obsClient.listVersions(
bucket,
version = Versions(
prefix = prefiks,
encoding_type = 'url',
key_marker = mark,
max_keys = 1000
)
)
if listing['status'] < 300:
for file_marker in listing['body']['markers']:
file_key = file_marker['key']
file_version = file_marker['versionId']
if file_marker['isLatest'] != True:
print(file_marker)
else:
undeleteObject = obsClient.deleteObject(
bucketName = bucket,
objectKey = file_key,
versionId = file_version
)
if undeleteObject['status'] > 204:
print(undeleteObject)
else:
pass
if listing['body']['head']['isTruncated'] == True:
mark = listing['body']['head']['nextKeyMarker']
else:
break
except:
print('exception')
print(traceback.format_exc())