GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Hochladen von Dateien in das S3-Konto über die Linux-Befehlszeile

Amazon bietet jetzt auch eigene CLI-Tools an.

Von http://aws.amazon.com/cli/

Mit vertrauter Syntax können Sie den Inhalt Ihrer S3-Buckets in einer verzeichnisbasierten Auflistung anzeigen.

$ aws s3 ls s3://mybucket
      LastWriteTime     Length Name
      -------------     ------ ----
                           PRE myfolder/
2013-09-03 10:00:00       1234 myfile.txt
...

Sie können rekursive Uploads und Downloads mehrerer Dateien mit einem einzigen Befehl auf Ordnerebene durchführen. Die AWS CLI führt diese Übertragungen zur Steigerung der Leistung parallel aus.

$ aws s3 cp myfolder s3://mybucket/myfolder --recursive
upload: myfolder/file1.txt to s3://mybucket/myfolder/file1.txt
upload: myfolder/subfolder/file1.txt to s3://mybucket/myfolder/subfolder/file1.txt
...

Ein Sync-Befehl macht es einfach, den Inhalt eines lokalen Ordners mit einer Kopie in einem S3-Bucket zu synchronisieren.

$ aws s3 sync myfolder s3://mybucket/myfolder --exclude *.tmp
upload: myfolder/newfile.txt to s3://mybucket/myfolder/newfile.txt
...

Dokumentation für dateibezogene Befehle ist hier.


S3cmd macht was du willst. Dateien hochladen und herunterladen, Verzeichnisse synchronisieren und Buckets erstellen.

S3cmd ist ein kostenloses Befehlszeilentool und Client zum Hochladen, Abrufen und Verwalten von Daten in Amazon S3 und anderen Cloud-Speicherdienstanbietern, die das S3-Protokoll verwenden, wie z. B. Google Cloud Storage oder DreamHost DreamObjects. Es eignet sich am besten für Power-User, die mit Befehlszeilenprogrammen vertraut sind. Es ist auch ideal für Batch-Skripte und automatisierte Sicherungen auf S3, ausgelöst von Cron usw.


Wenn Sie keine zusätzlichen Tools installieren können (vielleicht befinden Sie sich auf einem gemeinsam genutzten Host) oder möchten, können Sie einfach bash, curl und openssl verwenden.

http://tmont.com/blargh/2014/1/uploading-to-s3-in-bash

file=/path/to/file/to/upload.tar.gz
bucket=your-bucket
resource="/${bucket}/${file}"
contentType="application/x-compressed-tar"
dateValue=`date -R`
stringToSign="PUT\n\n${contentType}\n${dateValue}\n${resource}"
s3Key=xxxxxxxxxxxxxxxxxxxx
s3Secret=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
signature=`echo -en ${stringToSign} | openssl sha1 -hmac ${s3Secret} -binary | base64`
curl -L -X PUT -T "${file}" \
  -H "Host: ${bucket}.s3.amazonaws.com" \
  -H "Date: ${dateValue}" \
  -H "Content-Type: ${contentType}" \
  -H "Authorization: AWS ${s3Key}:${signature}" \
  https://${bucket}.s3.amazonaws.com/${file}

Beachten Sie, dass ich dieses Skript gegenüber dem im obigen Link geändert habe. Ich habe den -L hinzugefügt Option, da AWS dort möglicherweise eine Umleitung einfügt. Die -L Option folgt der Weiterleitung für Sie.

Eine weitere Einschränkung. Dies funktioniert nicht für Dateien, die größer als 5 GB sind. Diese erfordern einen mehrteiligen Upload, der ein komplexeres Skript erfordern würde.


Linux
  1. Konfigurieren Sie einen Linux-Arbeitsbereich remote über die Befehlszeile

  2. 4 Möglichkeiten zum Senden von E-Mail-Anhängen über die Linux-Befehlszeile

  3. Durchsuchen Sie Torrents von der Befehlszeile in Linux

  4. So finden Sie Dateien mit dem fd-Befehl in Linux

  5. matlab Skript von der Linux-Befehlszeile ausführen

So extrahieren oder entpacken Sie tar.gz-Dateien von der Linux-Befehlszeile

fdupes – Ein Befehlszeilentool zum Suchen und Löschen doppelter Dateien in Linux

youtube-dl – Laden Sie Youtube-Videos von der Linux-Befehlszeile herunter

Rm-Befehl unter Linux

So suchen Sie nach Dateien über die Linux-Befehlszeile

Senden Sie E-Mail in Linux von der Befehlszeile aus