Как удалить версионную корзину в AWS S3 с помощью интерфейса командной строки?

Попробуйте взглянуть на JCA CryptoSpec . Я не уверен в PGP, но я думаю, что вы можете найти там Провайдера для вашей цели.

Насколько я помню, код должен выглядеть примерно так:

// get cipher object for password-based encryption
Cipher cipher1 = Cipher.getInstance("PBEWithMD5AndDES");//You have to pass here algorithm name which PGP uses. May be you have to find and init provider for it.

// initialize cipher for decryption, using one of the 
// init() methods that takes an AlgorithmParameters 
// object, and pass it the algParams object from above
cipher1.init(Cipher.DECRYPT_MODE, myKey, algParams);


FileInputStream fis;
FileOutputStream fos;
CipherInputStream cis;

fis = new FileInputStream("/tmp/a.txt");
cis = new CipherInputStream(fis, cipher1);
fos = new FileOutputStream("/tmp/b.txt");
byte[] b = new byte[8];
int i = cis.read(b);
while (i != -1) {
    fos.write(b, 0, i);
    i = cis.read(b);
}
fos.close();

35
задан NobleUplift 23 April 2015 в 05:05
поделиться

1 ответ

Это работает на меня. Возможно, выполняя более поздние версии чего-то и выше> 1 000 объектов. выполнение нескольких миллионов файлов теперь. Однако его все еще не законченный после половины дня и никаких средств проверить в GUI AWS = /

# Set bucket name to clearout
BUCKET = 'bucket-to-clear'

import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket(BUCKET)

max_len         = 1000      # max 1000 items at one req
chunk_counter   = 0         # just to keep track
keys            = []        # collect to delete

# clear files
def clearout():
    global bucket
    global chunk_counter
    global keys
    result = bucket.delete_objects(Delete=dict(Objects=keys))

    if result["ResponseMetadata"]["HTTPStatusCode"] != 200:
        print("Issue with response")
        print(result)

    chunk_counter += 1
    keys = []
    print(". {n} chunks so far".format(n=chunk_counter))
    return

# start
for key in bucket.object_versions.all():
    item = {'Key': key.object_key, 'VersionId': key.id}
    keys.append(item)
    if len(keys) >= max_len:
        clearout()

# make sure last files are cleared as well
if len(keys) > 0:
    clearout()

print("")
print("Done, {n} items deleted".format(n=chunk_counter*max_len))
#bucket.delete() #as per usual uncomment if you're sure!
0
ответ дан roady 23 September 2019 в 22:12
поделиться
  • 1
    Спасибо за ответ, но это все еще не будет работать. I' ll обновляют с моим всем кодом. – Matthew Mitchell 3 November 2011 в 01:56
Другие вопросы по тегам:

Похожие вопросы: