Delete undelete_for_hse.py
This commit is contained in:
@@ -1,101 +0,0 @@
|
|||||||
import os
|
|
||||||
import traceback
|
|
||||||
from obs import ObsClient, Versions
|
|
||||||
|
|
||||||
bucket = os.getenv(
|
|
||||||
"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:
|
|
||||||
|
|
||||||
actualVersions = []
|
|
||||||
deleteVersions = []
|
|
||||||
|
|
||||||
mark = None
|
|
||||||
index = 1
|
|
||||||
|
|
||||||
while True:
|
|
||||||
|
|
||||||
listing = obsClient.listVersions(
|
|
||||||
bucket,
|
|
||||||
version = Versions(
|
|
||||||
encoding_type = 'url',
|
|
||||||
key_marker = mark,
|
|
||||||
max_keys = 1000
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
if listing['status'] < 300:
|
|
||||||
for dobject in listing['body']['versions']:
|
|
||||||
if dobject['versionId'] != None and dobject['isLatest'] != True:
|
|
||||||
actualObject = {
|
|
||||||
"key": dobject['key'],
|
|
||||||
"version": dobject['versionId']
|
|
||||||
}
|
|
||||||
actualVersions.append(actualObject)
|
|
||||||
|
|
||||||
for file_marker in listing['body']['markers']:
|
|
||||||
file_key = file_marker['key']
|
|
||||||
file_version = file_marker['versionId']
|
|
||||||
deleteMarkerObject = {
|
|
||||||
"key": file_key,
|
|
||||||
"version": file_version
|
|
||||||
}
|
|
||||||
deleteVersions.append(deleteMarkerObject)
|
|
||||||
|
|
||||||
# going to next file page
|
|
||||||
|
|
||||||
if listing['body']['head']['isTruncated'] == True:
|
|
||||||
mark = listing['body']['head']['nextKeyMarker']
|
|
||||||
else:
|
|
||||||
break
|
|
||||||
|
|
||||||
# now doing the right way
|
|
||||||
|
|
||||||
print("Deleting actual versions")
|
|
||||||
for object in actualVersions:
|
|
||||||
deleteObject = obsClient.deleteObject(
|
|
||||||
bucketName = bucket,
|
|
||||||
objectKey = object['file_key'],
|
|
||||||
versionId = object['file_version']
|
|
||||||
)
|
|
||||||
|
|
||||||
if deleteObject['status'] > 204:
|
|
||||||
print(deleteObject)
|
|
||||||
else:
|
|
||||||
pass
|
|
||||||
|
|
||||||
print("Deleting delete marker versions")
|
|
||||||
for object in deleteVersions:
|
|
||||||
deleteObject = obsClient.deleteObject(
|
|
||||||
bucketName = bucket,
|
|
||||||
objectKey = object['file_key'],
|
|
||||||
versionId = object['file_version']
|
|
||||||
)
|
|
||||||
|
|
||||||
if deleteObject['status'] > 204:
|
|
||||||
print(deleteObject)
|
|
||||||
else:
|
|
||||||
pass
|
|
||||||
|
|
||||||
except:
|
|
||||||
print('exception')
|
|
||||||
print(traceback.format_exc())
|
|
||||||
Reference in New Issue
Block a user