Mendownload folder dari aws s3, cp atau sync?

116

Jika saya ingin mengunduh semua konten direktori di S3 ke PC lokal saya, perintah mana yang harus saya gunakan cp atau sinkronisasi?

Bantuan apa pun akan sangat dihargai.

Sebagai contoh,

jika saya ingin mengunduh semua konten dari "folder ini" ke desktop saya, apakah akan terlihat seperti ini?

 aws s3 sync s3://"myBucket"/"this folder" C:\\Users\Desktop
BFlint
sumber

Jawaban:

201

Menggunakan aws s3 cpdari Antarmuka Baris Perintah (CLI) AWS akan membutuhkan --recursiveparameter untuk menyalin beberapa file.

aws s3 cp s3://myBucket/dir localdir --recursive

The aws s3 syncperintah akan, secara default, menyalin seluruh direktori. Ini hanya akan menyalin file baru / yang dimodifikasi.

aws s3 sync s3://mybucket/dir localdir

Hanya bereksperimen untuk mendapatkan hasil yang Anda inginkan.

Dokumentasi:

John Rotenstein
sumber
3
Butuh waktu beberapa menit untuk mencari tahu di mana mendapatkan cli aws. Ini dia: aws.amazon.com/cli
Bjørn Stenfeldt
@dnafication Harap buat pertanyaan baru daripada mengajukan pertanyaan dalam komentar di pertanyaan lama.
John Rotenstein
1
aws s3 cp s3://myBucket/dir localdir --recursive. Ini bekerja seperti pesona. Jika --recursive flag dilewati, ini akan membuat kesalahan yang tidak berguna:fatal error: An error occurred (404) when calling the HeadObject operation: Key "myBucket" does not exist
Siddhartha
Tetapi jika file zip tunggal berukuran besar dalam GB, apa rekomendasinya?
Kanagavelu Sugumar
@KanagaveluSugumar Harap buat Pertanyaan baru daripada bertanya melalui komentar pada pertanyaan lama.
John Rotenstein
4

Jika Anda perlu menggunakan profil lain, terutama lintas akun. Anda perlu menambahkan profil di file konfigurasi

[profile profileName]
region = us-east-1
role_arn = arn:aws:iam::XXX:role/XXXX
source_profile = default

dan kemudian jika Anda hanya mengakses satu file

aws s3 cp s3://crossAccountBucket/dir localdir --profile profileName

myPavi
sumber
2

Jika Anda ingin mengunduh satu file, Anda dapat mencoba perintah berikut:

aws s3 cp s3://bucket/filename /path/to/dest/folder
gCoh
sumber
1

Baru saja menggunakan AWS CLI versi 2. Untuk opsi s3, ada juga opsi --dryrun sekarang untuk menunjukkan kepada Anda apa yang akan terjadi:

aws s3 --dryrun cp s3://bucket/filename /path/to/dest/folder --recursive

Marc Duby
sumber