Saya punya beberapa file besar yang tersimpan di akun yang di-host di Linux yang perlu saya unggah ke akun S3 saya. Saya tidak ingin mengunduhnya terlebih dahulu dan kemudian mengunggahnya ke S3.
Apakah ada cara saya bisa "mengunggah" melalui baris perintah Linux? Atau dapatkah saya mengaksesnya melalui situs web yang bekerja dengan Lynx?
sumber
Amazon juga menyediakan alat CLI mereka sendiri sekarang.
Dari http://aws.amazon.com/cli/
Dokumentasi untuk perintah terkait file ada di sini .
sumber
Jika Anda tidak dapat (mungkin Anda menggunakan host bersama) atau tidak ingin menginstal alat tambahan, Anda dapat menggunakan bash, curl, dan openssl.
http://tmont.com/blargh/2014/1/uploading-to-s3-in-bash
Perhatikan bahwa saya memodifikasi skrip ini dari yang ada di tautan di atas. Saya menambahkan
-L
opsi karena AWS dapat memasukkan redirect di sana. The-L
pilihan akan mengikuti redirect untuk Anda.Satu peringatan lainnya. Ini tidak akan berfungsi untuk file yang lebih besar dari 5GB. Itu memerlukan unggahan multi-bagian yang membutuhkan skrip yang lebih rumit.
sumber
Skrip shell yang sesuai dengan POSIX yang hanya membutuhkan openssl, curl, dan sed; mendukung AWS Signature Version 4, yang diperlukan untuk wilayah
eu-central-1
(Frankfurt) dan direkomendasikan untuk yang lain:https://gist.github.com/vszakats/2917d28a951844ab80b1
Perhatikan, skrip akan mengaktifkan sisi server
Enkripsi AES256 secara default.
sumber
The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256
Atau Anda dapat mencoba https://github.com/minio/mc
mc
menyediakan alat minimal untuk bekerja dengan penyimpanan cloud dan sistem file Amazon S3 yang kompatibel. Ini memiliki fitur seperti unggah yang dapat dilanjutkan, bilah progres, salinan paralel.mc
ditulis dalam Golang dan dirilis di bawah lisensi Apache v2.sumber
Saya menemukan binding AWS Python dalam
boto
paket (pip install boto
) sangat membantu untuk mengunggah data ke S3.Script berikut dapat disebut seperti: di
python script_name.py "sub_bucket_name" "*.zip"
manasub_bucket_name
menunjukkan nama direktori di mana file harus disimpan dalam S3, dan*.zip
merupakan lintasan glob yang menunjuk satu atau lebih file yang akan diunggah:sumber