Pobierasz foldery z AWS S3, CP lub Sync?

114

Jeśli chcę pobrać całą zawartość katalogu na S3 na mój lokalny komputer, które polecenie powinienem użyć cp lub sync?

Każda pomoc byłaby bardzo mile widziana.

Na przykład,

jeśli chcę pobrać całą zawartość „tego folderu” na swój pulpit, czy będzie to wyglądać tak?

 aws s3 sync s3://"myBucket"/"this folder" C:\\Users\Desktop
BFlint
źródło

Odpowiedzi:

197

Korzystanie aws s3 cpz interfejsu wiersza poleceń AWS (CLI) będzie wymagać --recursiveparametru do kopiowania wielu plików.

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

aws s3 syncPolecenie domyślnie skopiować cały katalog. Kopiuje tylko nowe / zmodyfikowane pliki.

aws s3 sync s3://mybucket/dir localdir

Po prostu eksperymentuj, aby uzyskać pożądany efekt.

Dokumentacja:

John Rotenstein
źródło
3
Zajęło mi kilka minut, aby dowiedzieć się, skąd wziąć aws cli. Oto jest: aws.amazon.com/cli
Bjørn Stenfeldt
@dnafication Utwórz nowe pytanie, zamiast zadawać je w komentarzu do starego pytania.
John Rotenstein
1
aws s3 cp s3://myBucket/dir localdir --recursive. To działa jak urok. Jeśli flaga --recursive zostanie pominięta, generuje raczej nieprzydatny błąd:fatal error: An error occurred (404) when calling the HeadObject operation: Key "myBucket" does not exist
Siddhartha
Ale jeśli plik pojedynczy zip ma duży rozmiar w GB, jakie byłoby zalecenie?
Kanagavelu Sugumar
@KanagaveluSugumar Utwórz nowe pytanie, zamiast zadawać pytania w komentarzu do starego pytania.
John Rotenstein
4

W przypadku, gdy musisz użyć innego profilu, zwłaszcza konta międzyplatformowego. musisz dodać profil w pliku konfiguracyjnym

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

a następnie, jeśli uzyskujesz dostęp tylko do jednego pliku

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

myPavi
źródło
2

W przypadku, gdy chcesz pobrać pojedynczy plik, możesz wypróbować następujące polecenie:

aws s3 cp s3://bucket/filename /path/to/dest/folder
gCoh
źródło
1

Właśnie użyłem wersji 2 interfejsu AWS CLI. W przypadku opcji s3 dostępna jest teraz również opcja --dryrun, która pokazuje, co się stanie:

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

Marc Duby
źródło