Wie kann ich mit einen Ordner unter einem Bucket erstellen? boto
Bibliothek für Amazon S3 ?
Ich habe das Handbuch befolgt und die Schlüssel mit Berechtigung, Metadaten usw. erstellt, aber nirgends in der Dokumentation des Botos wird beschrieben, wie Ordner unter einem Bucket oder ein Ordner unter Ordnern im Bucket erstellt werden.
Antworten:
In S3 gibt es kein Konzept für Ordner oder Verzeichnisse. Sie können Dateinamen wie erstellen
"abc/xys/uvw/123.jpg"
, die viele S3-ZugriffstoolsS3Fox
wie eine Verzeichnisstruktur anzeigen, aber es ist eigentlich nur eine einzelne Datei in einem Bucket.quelle
Angenommen, Sie möchten einen Ordner abc / 123 / in Ihrem Eimer erstellen, das ist mit Boto ein Kinderspiel
Oder benutzen Sie die Konsole
quelle
new_key()
ist das alles was du brauchst. Die an die Funktion gesendete Zeichenfolge kannabc/123/
oder seinabc/123/newfile.txt
. Was auch immer Sie bevorzugen. Ich mag es, dies in eine if-Anweisung zu packen, nachdem ich versucht habe, das zu bekommen, was ich hoffekey = bucket.get_key(upgrade_path) if key is None: key = bucket.new_key(upgrade_path)
, dass es so ist : Wenn es nicht da ist, erstelle es im Wesentlichen!mp = self._bucket.initiate_multipart_upload(bucket_key)
Mit AWS SDK .Net funktioniert einwandfrei. Fügen Sie einfach "/" am Ende der Ordnernamenzeichenfolge hinzu:
Aktualisieren Sie dann Ihre AWS-Konsole, und Sie sehen den Ordner
quelle
Benutze das:
quelle
Fügen Sie "_ $ folder $" an Ihren Ordnernamen an und rufen Sie put auf.
siehe: http://www.snowgiraffe.com/tech/147/creating-folders-programmatisch-mit-amazon-s3s-api-putting-babies-in-buckets/
quelle
Es ist wirklich einfach, Ordner zu erstellen. Eigentlich geht es nur darum, Schlüssel zu erstellen.
Sie können meinen folgenden Code sehen, ich habe einen Ordner mit utc_time als Namen erstellt.
Denken Sie daran, beendet den Schlüssel mit '/' wie unten Dies zeigt an, dass es sich um einen Schlüssel handelt:
Key = 'folder1 /' + utc_time + '/'
quelle
Update für 2019: Wenn Sie einen Ordner mit dem Pfad Bucket_Name / Ordner1 / Ordner2 erstellen möchten, können Sie diesen Code verwenden:
quelle
Sie können zwar einen Ordner erstellen, indem Sie "/" an Ihren Ordnernamen anhängen. Unter der Haube behält S3 im Gegensatz zu Ihrem normalen NFS eine flache Struktur bei.
quelle
Viele der oben beschriebenen Methoden und das Hinzufügen eines Schrägstrichs
/
am Ende des Schlüsselnamens zum Erstellen eines Verzeichnisses haben bei mir nicht funktioniert:Sie müssen
Body
Parameter angeben, um ein Verzeichnis zu erstellen:Quelle: Ryantuck in der Ausgabe von Boto3
quelle
S3 hat keine Ordnerstruktur, aber es gibt so etwas wie Schlüssel.
Wir können erstellen
/2013/11/xyz.xls
und werden als Ordner in der Konsole angezeigt. Der Speicherteil von S3 verwendet dies jedoch als Dateinamen.Selbst beim Abrufen stellen wir fest, dass wir Dateien in bestimmten Ordnern (oder Schlüsseln) mithilfe der
ListObjects
Methode und desPrefix
Parameters sehen können.quelle
Anscheinend können Sie jetzt Ordner in S3 erstellen. Ich bin mir seit wann nicht sicher, aber ich habe einen Bucket in der Zone "Standard" und kann Ordner aus der Dropdown-Liste Aktion auswählen auswählen.
quelle