J'ai interagi avec Amazon S3 via S3Fox et je ne peux pas supprimer mes seaux. Je sélectionne un seau, appuie sur supprimer, confirme la suppression dans une fenêtre contextuelle et... rien ne se passe. Y a-t-il un autre outil que je devrais utiliser ?
Réponses
Trop de publicités?Cela peut être un bug dans S3Fox, car il est généralement capable de supprimer des éléments de manière récursive. Cependant, je ne suis pas sûr d'avoir déjà essayé de supprimer un seau entier et son contenu en une seule fois.
Le projet JetS3t, comme mentionné par Stu, comprend une applet Java GUI que vous pouvez facilement exécuter dans un navigateur pour gérer vos seaux S3 : Cockpit. Il a à la fois des points forts et des points faibles par rapport à S3Fox, mais il y a de fortes chances qu'il vous aide à résoudre les problèmes de votre seau. Il vous faudra cependant supprimer les objets d'abord, puis le seau.
Avis de non-responsabilité : Je suis l'auteur de JetS3t et de Cockpit
J'ai implémenté bucket-destroy, un utilitaire multi-thread qui fait tout ce qu'il faut pour supprimer un bucket. Je gère les buckets non vides, ainsi que les clés de bucket activées par version.
Vous pouvez lire l'article de blog ici http://bytecoded.blogspot.com/2011/01/recursive-delete-utility-for-version.html et les instructions ici http://code.google.com/p/bucket-destroy/
J'ai réussi à supprimer avec succès un bucket qui contient double '//' dans le nom de la clé, des clés versionnées et des clés DeleteMarker. Actuellement, je le lance sur un bucket qui contient environ 40 000 000 objets et jusqu'à présent j'ai pu en supprimer 1 200 000 en plusieurs heures sur un m1.large. Notez que l'utilitaire est multi-thread mais n'a pas encore mis en œuvre le mélange (ce qui permettrait une mise à l'échelle horizontale en lançant l'utilitaire sur plusieurs machines).
Si vous utilisez la console d'Amazon et que vous avez besoin de vider un bucket de manière ponctuelle : Vous pouvez parcourir votre bucket, puis sélectionner la première clé, faire défiler jusqu'en bas, maintenir la touche Maj enfoncée sur votre clavier, puis cliquer sur la dernière clé. Cela sélectionnera tout ce qui se trouve entre les deux, puis vous pourrez cliquer droit et supprimer.
Si vous avez ruby (et rubygems) installé, installez le gem aws-s3 avec
gem install aws-s3
ou
sudo gem install aws-s3
créez un fichier delete_bucket.rb
:
require "rubygems" # optionnel
require "aws/s3"
AWS::S3::Base.establish_connection!(
:access_key_id => 'access_key_id',
:secret_access_key => 'secret_access_key')
AWS::S3::Bucket.delete("bucket_name", :force => true)
et exécutez-le:
ruby delete_bucket.rb
Étant donné que Bucket#delete
retournait souvent des exceptions de délai d'attente pour moi, j'ai étendu le script:
require "rubygems" # optionnel
require "aws/s3"
AWS::S3::Base.establish_connection!(
:access_key_id => 'access_key_id',
:secret_access_key => 'secret_access_key')
while AWS::S3::Bucket.find("bucket_name")
begin
AWS::S3::Bucket.delete("bucket_name", :force => true)
rescue
end
end
Je suppose que la manière la plus simple serait d'utiliser S3fm, un gestionnaire de fichiers en ligne gratuit pour Amazon S3. Pas d'applications à installer, pas d'inscriptions à des sites web tiers. Fonctionne directement à partir d'Amazon S3, sécurisé et pratique.
Il suffit de sélectionner votre compartiment et de cliquer sur Supprimer.