Yanıtlar:
Silindikten sonra, bir nesneyi geri yükleme veya silme işlemini geri alma yöntemi yoktur.
Sürüm oluşturma etkinse, evet yapabilirsiniz! Sürümlü bir grupta, bir dosyadaki silme işlemi onu gerçekten silmez, ancak "İşaretçiyi Sil" içeren bir sürüm ekler. Silme işaretleyicisini AWS CLI ile silebilirsiniz:
aws s3api delete-object --bucket yourbucket-name --key "yourfile" --version-id id_of_the_delete_marker
Kovadaki tüm dosyaları
aws --output text s3api list-object-versions --bucket yourbucket-name > files.txt
Gruptaki tüm dosyaları silme işlemini geri almak isterseniz deneyebilirsiniz:
echo '#!/bin/bash' > undeleteScript.sh && aws --output text s3api list-object-versions --bucket yourbucket-name | grep -E "^DELETEMARKERS" | awk '{FS = "[\t]+"; print "aws s3api delete-object --bucket yourbucket-name --key \42"$3"\42 --version-id "$5";"}' >> undeleteScript.sh && . undeleteScript.sh; rm -f undeleteScript.sh;
--output=text
için çalışmasını istiyorsanız bir eklemeniz gerekir . AWS komutunuzu .JSON dosyası değil, bir .txt dosyası aracılığıyla çıkardığınızı varsayıyor.
Sadece cevabı ararken bu soruyu güncelliyorum:
Şimdi S3 kovalarına VERSIONING ekleyebilirsiniz. Bu, S3'ün silindikten sonra bile bir nesnenin sürümlerini korumasına neden olur. Tam belgeler: http://docs.amazonwebservices.com/AmazonS3/latest/dev/Versioning.html
Artık nesne sürümlerini AWS konsolunu kullanarak listeleyebilirsiniz: http://docs.aws.amazon.com/AmazonS3/latest/UG/managing-objects-versioned-bucket.html
Doğru izinlere sahipseniz, silme işaretleyicisini (silinen bir nesnenin en son sürümü) silebilirsiniz ve sonuç, nesnenin tekrar kullanılabilir olmasıdır.