Wie kann ich programmgesteuert überprüfen Sie die Amazon S3-Berechtigungen mit boto?
Wir haben einen buschigen Baum in einen Eimer auf Amazon S3 mit einer großen Anzahl von Dateien. Ich habe gerade entdeckt, dass einige Dateien haben zwei Berechtigungen, Einträge, die, wie gesehen, klickt man auf eine Datei in der AWS Management Console, dann auf Eigenschaften -> Berechtigungen, eine Zeile wird "alle" und die andere einige bestimmte user, die anderen Dateien müssen nur einen Eintrag für diesen Benutzer. Die Ergebnisse, wir haben Sie Probleme mit dem herunterladen von Dateien auf die Amazon EC2-instances mithilfe von boto oder curl.
Was ich tun müssen, ist zu gehen über alle Dateien im Eimer sind und Sie überprüfen. Ich weiß, wie man die vollständige Liste der Tasten für ein Präfix. Kann ich mit boto zum extrahieren von Berechtigungen für einen Schlüssel, und gibt es einen standard zu testen, ob diese Berechtigungen für alle oder jemand bestimmtes, und das, was Sie sind?
Auch, wenn ich festzustellen, ob ein Schlüssel eingeschränkte Berechtigungen, kann ich programmgesteuert ändern Sie diese durch hinzufügen von lese-Berechtigungen für "jeder"?
Thx
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier einige Python-code, mit boto, das wäre doch über alle Schlüssel in einen Eimer. Wenn der Schlüssel nicht zulässt, dass "jeder" Lesen Sie den Inhalt des Schlüssels, wird es
public-read
Berechtigungen auf diesen Schlüssel:Dieser code wurde nicht gründlich getestet, so sollten Sie versuchen, Dinge ersten. Auch, klar sein, dass das Netto-Ergebnis dieser ist, um ALLE Objekte in den Eimer von allen Benutzern gelesen. Beachten Sie auch, dass dieses Skript ist das abrufen der aktuellen ACL-jedes Objekt in die Eimer so, wenn es gibt Millionen von Objekten, die Millionen von Anfragen, die können eine Menge Zeit und hat mit einigen Kosten verbunden.
Anderer Ansatz wäre es, einfach anrufen
make_public()
auf jeden Schlüssel in den Eimer, unabhängig von seiner aktuellen ACL.