In meinem von Linux gehosteten Konto befinden sich mehrere große Dateien, die ich auf mein S3-Konto hochladen muss. Ich möchte sie nicht zuerst herunterladen und dann in S3 hochladen.
Kann ich es auf irgendeine Weise über die Linux-Befehlszeile "hochladen"? Oder kann ich über eine Website mit Lynx darauf zugreifen?
quelle
Amazon bietet jetzt auch eigene CLI-Tools an.
Von http://aws.amazon.com/cli/
Dokumentation für dateibezogene Befehle finden Sie hier .
quelle
Wenn Sie dies nicht können (vielleicht befinden Sie sich auf einem gemeinsam genutzten Host) oder keine zusätzlichen Tools installieren möchten, können Sie einfach bash, curl und openssl verwenden.
http://tmont.com/blargh/2014/1/uploading-to-s3-in-bash
Beachten Sie, dass ich dieses Skript gegenüber dem obigen Link geändert habe. Ich habe die
-L
Option hinzugefügt, da AWS dort möglicherweise eine Umleitung einfügt. Die-L
Option folgt der Weiterleitung für Sie.Noch eine Einschränkung. Dies funktioniert nicht für Dateien, die größer als 5 GB sind. Diese erfordern einen mehrteiligen Upload, der ein komplexeres Skript erfordert.
quelle
Ein POSIX-kompatibles Shell-Skript, für das nur openssl, curl und sed erforderlich sind. Unterstützung von AWS Signature Version 4, die für die Region
eu-central-1
(Frankfurt) erforderlich und für die anderen empfohlen ist:https://gist.github.com/vszakats/2917d28a951844ab80b1
Beachten Sie, dass das Skript serverseitig aktiviert wird
AES256-Verschlüsselung standardmäßig.
quelle
The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256
Alternativ können Sie https://github.com/minio/mc versuchen
mc
Bietet minimale Tools für die Arbeit mit Amazon S3-kompatiblen Cloud-Speichern und Dateisystemen. Es verfügt über Funktionen wie wiederkehrende Uploads, Fortschrittsbalken, paralleles Kopieren.mc
ist in Golang geschrieben und unter der Apache-Lizenz v2 veröffentlicht.quelle
Ich habe festgestellt, dass die AWS-Bindungen von Python im
boto
package (pip install boto
) hilfreich sind, um Daten in S3 hochzuladen.Das folgende Skript kann folgendermaßen aufgerufen werden:
python script_name.py "sub_bucket_name" "*.zip"
Dabeisub_bucket_name
gibt es den Namen des Verzeichnisses an, in dem die Dateien in S3 gespeichert werden sollen, und*.zip
einen globalen Pfad, der eine oder mehrere hochzuladende Dateien angibt :quelle