大量のレガシー ファイルを含む S3 バケットがあります。バージョン管理をオンにしたばかりで、切り替え後にアップロードされた新しいファイルと比較して、レガシーファイルに対してどのような削除保護が提供されるかを理解しようとしています。サンプルコードは次のとおりです。
import boto
c = boto.connect_s3()
bucket = c.get_bucket('my-bucket')
pfx='myfolder/subfolder/'
i = 0
for k in bucket.list_versions(prefix=pfx):
if type(k) == boto.s3.deletemarker.DeleteMarker:
print "DM %s %s" % (k.name, k.version_id)
else:
s = k.get_contents_as_string()
print "REG %s %s %d" % (k.name, k.version_id, len(s))
これにpfx
はいくつかのレガシーファイルが含まれているため、これを初めて実行したときは次のようになりました。
REG myfolder/subfolder/ null 0
REG myfolder/subfolder/f1 null 369
REG myfolder/subfolder/f2 null 427
REG myfolder/subfolder/f3 null 141
その後、ツールf2
を使用して削除しました。S3Browser
上記のコードを再実行すると、次のようになりました。
REG myfolder/subfolder/ null 0
REG myfolder/subfolder/f1 null 369
DM myfolder/subfolder/f2 KPNaxqBeIrCGKUx3tYUsRDwWzKbX06
REG myfolder/subfolder/f2 null 427
REG myfolder/subfolder/f3 null 141
質問: 削除したばかりの (唯一の) バージョンを取得/復元する方法はありf2
ますか?