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:
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% 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:
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%Wenn Sie alle Objekte eines Ordners in Ihrem Bucket auflisten möchten, können Sie dies bei der Auflistung angeben.
%Vor%