GNU/Linux >> Belajar Linux >  >> Linux

Mengunggah file ke akun S3 dari baris perintah Linux

Amazon sekarang juga menyediakan alat CLI mereka sendiri.

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

Dengan menggunakan sintaksis yang sudah dikenal, Anda dapat melihat konten bucket S3 Anda dalam daftar berbasis direktori.

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

Anda dapat melakukan pengunggahan dan pengunduhan berulang dari banyak file dalam satu perintah tingkat folder. AWS CLI akan menjalankan transfer ini secara paralel untuk peningkatan kinerja.

$ 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
...

Perintah sinkronisasi memudahkan sinkronisasi konten folder lokal dengan salinan di bucket S3.

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

Dokumentasi untuk perintah terkait file ada di sini.


S3cmd melakukan apa yang Anda inginkan. Mengunggah dan mengunduh file, menyinkronkan direktori, dan membuat keranjang.

S3cmd adalah klien dan alat baris perintah gratis untuk mengunggah, mengambil, dan mengelola data di Amazon S3 dan penyedia layanan penyimpanan cloud lainnya yang menggunakan protokol S3, seperti Google Cloud Storage atau DreamHost DreamObjects. Ini paling cocok untuk pengguna yang mahir yang terbiasa dengan program baris perintah. Ini juga ideal untuk skrip batch dan pencadangan otomatis ke S3, dipicu dari cron, dll.


Jika Anda tidak bisa (mungkin menggunakan host bersama) atau tidak ingin memasang alat tambahan, Anda bisa menggunakan bash, curl, dan openssl.

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}

Perhatikan bahwa saya memodifikasi skrip ini dari yang ada di tautan di atas. Saya menambahkan -L opsi karena AWS dapat memasukkan pengalihan di sana. -L opsi akan mengikuti pengalihan untuk Anda.

Satu peringatan lainnya. Ini tidak akan berfungsi untuk file yang lebih besar dari 5GB. Itu membutuhkan unggahan multi-bagian yang membutuhkan skrip yang lebih kompleks.


Linux
  1. Percepat rsync saat memigrasi server Linux dari baris perintah

  2. 11 Contoh Perintah Linux diff3 (Bandingkan 3 File Baris demi Baris)

  3. matlab mengeksekusi skrip dari baris perintah linux

  1. Konfigurasikan ruang kerja Linux dari jarak jauh dari baris perintah

  2. 4 Cara Mengirim Lampiran Email dari Baris Perintah Linux

  3. 5 Alat Baris Perintah untuk Menemukan File dengan Cepat di Linux

  1. Cara Menghapus File dan Direktori di Linux dari Command Line

  2. Cari Torrents Dari Command Line Di Linux

  3. Cara Memisahkan Dan Menggabungkan File Dari Baris Perintah Di Linux