Python boto, listet den Inhalt eines bestimmten Verzeichnisses im Bucket auf

9

Ich habe S3-Zugriff nur auf ein bestimmtes Verzeichnis in einem S3-Bucket.

Zum Beispiel mit dem Befehl s3cmd , wenn ich versuche, den gesamten Bucket aufzulisten:

%Vor%

Ich erhalte einen Fehler: Access to bucket 'my-bucket-url' was denied

Aber wenn ich versuche, auf ein bestimmtes Verzeichnis im Bucket zuzugreifen, kann ich den Inhalt sehen:

%Vor%

Jetzt möchte ich mit Python Boto eine Verbindung zum S3-Bucket herstellen. Ähnlich wie:

%Vor%

Ich erhalte einen Fehler: boto.exception.S3ResponseError: S3ResponseError: 403 Forbidden

Aber wenn ich es versuche:

%Vor%

Das Skript bleibt etwa 10 Sekunden stehen und gibt anschließend einen Fehler aus. Balg ist die vollständige Spur. Irgendeine Idee, wie man damit fortfährt?

%Vor%     
Martin Taleski 04.12.2014, 10:52
quelle

2 Antworten

17

Wenn Sie in Boto einen get_bucket -Aufruf ausführen, versucht er standardmäßig, zu überprüfen, dass Sie tatsächlich Zugriff auf diesen Bucket haben, indem Sie eine HEAD -Anforderung für die Bucket-URL ausführen. In diesem Fall möchten Sie Boto nicht, da Sie keinen Zugriff auf den Bucket selbst haben. Also, tu das:

%Vor%

und dann sollten Sie in der Lage sein, etwas zu tun, um Objekte aufzulisten:

%Vor%

Wenn Sie immer noch einen 403-Fehler erhalten, versuchen Sie, am Ende des Präfixes einen Schrägstrich hinzuzufügen.

%Vor%     
garnaat 04.12.2014, 12:51
quelle
0

Wenn Sie alle Objekte eines Ordners in Ihrem Bucket auflisten möchten, können Sie dies bei der Auflistung angeben.

%Vor%     
user208859 25.12.2016 04:14
quelle

Tags und Links