Also ich weiß, das ist eine häufige Frage, aber es scheint einfach keine guten Antworten dafür zu geben.Wie lösche/zähle ich Objekte in einem s3-Bucket?
Ich habe einen Eimer mit Tropfen (ich habe keine Ahnung, wie viele) Anzahl der Dateien in ihnen. Sie sind alle in 2k Stück.
1) Wie finde ich heraus, wie viele dieser Dateien habe ich ohne Auflistung sie? Ich habe die s3cmd.rb, aws/s3 und jets3t Zeug verwendet und das Beste, was ich finden kann, ist ein Befehl zum Zählen der ersten 1000 Datensätze (wirklich GETS auf ihnen durchzuführen).
Ich habe auch das Applet von jets3t verwendet, weil es wirklich schön ist, mit zu arbeiten, aber auch, dass ich nicht alle meine Objekte auflisten kann, weil ich keinen Platz mehr im Heap habe. (vermutlich weil es GETS auf allen von ihnen macht und sie in Gedächtnis behält)
2) Wie kann ich gerade einen Eimer löschen? Das Beste, was ich gesehen habe, ist eine parallelisierte Löschschleife und das hat Probleme, weil es manchmal versucht, die gleiche Datei zu löschen. Das ist es, was alle "deleteall" -Befehle, die ich überliefert habe, tun.
Was machst du, die sich geprahlt haben über das Hosting von Millionen von Bildern/Txts? Was passiert, wenn Sie es entfernen möchten?
3) Zuletzt gibt es alternative Antworten darauf? All diese Dateien sind txt/xml-Dateien, deshalb bin ich mir nicht einmal sicher, ob S3 so ein Problem ist - vielleicht sollte ich das in eine Art von Dokumenten-Datenbank verschieben?
Worauf es ankommt ist, dass die Amazon S3 API gerade gerade 2 sehr wichtige Operationen - COUNT und DEL_BUCKET fehlt. (Tatsächlich gibt es einen Lösch-Bucket-Befehl, aber es funktioniert nur, wenn der Bucket leer ist). Wenn jemand eine Methode entwickelt, die diese beiden Operationen nicht ablöst, würde ich gerne eine Menge Bounty aufgeben.
UPDATE
einfach ein paar Fragen zu beantworten. Der Grund, warum ich das frage, war, dass ich im letzten Jahr Hunderttausende gespeichert habe, mehr wie Millionen von 2k TXT- und XML-Dokumenten. Das letzte Mal, vor ein paar Monaten, wollte ich den Eimer löschen, für den er buchstäblich DAYS brauchte, weil der Eimer leer sein muss, bevor man ihn löschen kann. Das war so eine Nervensäge, dass ich befürchte, dass ich das jemals wieder tun müsste, ohne API-Unterstützung dafür.
UPDATE
diese rockt das Haus!
http://github.com/SFEley/s3nuke/
rm'd ich ein gutes paar Gigs im Wert von 1-2k Dateien innerhalb weniger Minuten.
sogar die Schlüssel zu 1000 Zeit oder was auch immer die Nummer war - das dauerte ewig - mehr als einen Nachmittag und ich tötete es schließlich, nachdem ich gelangweilt und bemerkte, dass mein Haufen viel zu überfüllt war. – eyberg
Ich glaube nicht, dass es einen API-Aufruf gibt, um nur die Anzahl der Elemente zu erhalten. Wahrscheinlich haben Sie ein Werkzeug benutzt, das auch den Inhalt der Dateien bekommt - deshalb hat es so lange gedauert. Verwenden Sie einfach Fiddler oder ein anderes Tool, um die GET-Bucket-Anfrage zu senden (siehe den REST-API-Link in meiner Antwort). Es sollte nicht lange dauern, um die XML zurück zu bekommen. Ich habe Angst, dass ich nicht so einen großen Eimer habe, um es selbst zu testen. – kgiannakakis