Zauważyłem, że wydaje się, że nie ma opcji pobrania całego segmentu S3 z konsoli zarządzania AWS.
Czy istnieje prosty sposób na złapanie wszystkiego w jednym z moich wiader? Zastanawiałem się nad upublicznieniem folderu głównego, użyciem go wget
do pobrania, a następnie nadaniem mu statusu prywatnego, ale nie wiem, czy jest łatwiejszy sposób.
amazon-s3
amazon-web-services
Rugbert
źródło
źródło
aws s3 sync
jest najlepsze. Ale nikt nie zauważył potężną opcję:dryrun
. Ta opcja pozwala zobaczyć, co będzie pobierane / przesyłane z / do s3 podczas korzystaniasync
. Jest to bardzo pomocne, gdy nie chcesz zastępować treści ani w lokalnym, ani w wiadrze s3. Oto jak się to stosuje:aws s3 sync <source> <destination> --dryrun
korzystałem z niego cały czas, zanim wypchnąłem nową zawartość do wiadra, aby nie przesyłać niepożądanych zmian.Odpowiedzi:
AWS CLI
Aby uzyskać więcej informacji, zobacz „ Wykaz poleceń interfejsu wiersza polecenia AWS ”.
AWS niedawno wydało swoje narzędzia wiersza poleceń, które działają podobnie do boto i można je zainstalować za pomocą
lub
Po zainstalowaniu możesz po prostu uruchomić:
Na przykład:
pobierze wszystkie obiekty
mybucket
do bieżącego katalogu.I wyświetli:
Spowoduje to pobranie wszystkich plików za pomocą synchronizacji w jedną stronę. To będzie nie usuwać żadnych istniejących plików w bieżącym katalogu, chyba że podasz , i nie będzie się zmieniać lub usuwać żadnych plików na S3.
--delete
Możesz także wykonać segment S3 do segmentu S3 lub lokalną synchronizację segmentu S3.
Sprawdź dokumentację i inne przykłady .
Podczas gdy powyższy przykład pokazuje, jak pobrać pełny segment, możesz również pobrać folder rekurencyjnie, wykonując
Spowoduje to, że CLI pobierze rekursywnie wszystkie pliki i klucze folderów z
PATH/TO/FOLDER
katalogu wBUCKETNAME
segmencie.źródło
aws configure
i dodaj swojąaccess key
isecret access key
którą można znaleźć tutaj .s3cmd
iCyberduck
, ale dla mnieawscli
był to zdecydowanie najszybszy sposób na pobranie ~ 70 000 plików z mojego wiadra.aws s3 sync
polecenie niczego nie załaduje , ale usunie pliki lokalnie, jeśli nie istnieją na S3. Zobacz dokumentację .Możesz użyć
s3cmd
do pobrania wiadra:Istnieje inne narzędzie, którego można użyć, o nazwie
rclone
. To jest przykładowy kod w dokumentacji Rclone:źródło
Użyłem kilku różnych metod, aby skopiować dane Amazon S3 na lokalną maszynę, w tym
s3cmd
, i zdecydowanie najłatwiejsza jest Cyberduck .Wszystko, co musisz zrobić, to wpisać swoje dane uwierzytelniające Amazon i użyć prostego interfejsu do pobierania, przesyłania, synchronizowania dowolnych wiader, folderów lub plików.
źródło
Masz na to wiele opcji, ale najlepszą z nich jest użycie interfejsu AWS CLI.
Oto przewodnik:
Pobierz i zainstaluj AWS CLI na swoim komputerze:
Skonfiguruj interfejs AWS CLI:
Upewnij się, że wprowadziłeś poprawny klucz dostępu i tajne klucze, które otrzymałeś podczas tworzenia konta.
Zsynchronizuj łyżkę S3, używając:
W powyższym poleceniu zastąp następujące pola:
yourbucket
>> twoje wiadro S3, które chcesz pobrać./local/path
>> ścieżka w systemie lokalnym, do którego chcesz pobrać wszystkie pliki.źródło
s3://
prefiks w nazwie wiadra !!! Zeaws s3 ls
nie trzeba tegos3://
prefiksu, ale trzeba docp
komendy.Aby pobrać za pomocą interfejsu AWS S3 CLI:
Aby pobrać za pomocą kodu, użyj AWS SDK.
Aby pobrać za pomocą GUI, użyj Cyberduck.
źródło
aws s3 cp s3://my-bucket-name ./local-folder --recursive --include "*" --exclude "excludeFolder/*" --exclude "includeFolder/excludeFile.txt"
W systemie Windows przeglądarka S3 to najłatwiejszy sposób, jaki udało mi się znaleźć. To doskonałe oprogramowanie i jest bezpłatne do użytku niekomercyjnego.
źródło
Jeśli korzystasz z programu Visual Studio, pobierz „ AWS Toolkit for Visual Studio ”.
Po zainstalowaniu przejdź do Visual Studio - AWS Explorer - S3 - Twój segment - Kliknij dwukrotnie
W oknie będziesz mógł wybrać wszystkie pliki. Kliknij prawym przyciskiem myszy i pobierz pliki.
źródło
Użyj tego polecenia z interfejsem AWS CLI :
źródło
Inną opcją, która może pomóc niektórym użytkownikom OS X, jest Transmit.
Jest to program FTP, który pozwala również łączyć się z plikami S3. I ma opcję zamontowania dowolnej pamięci FTP lub S3 jako folderu w Finderze, ale to tylko przez ograniczony czas.
źródło
Odpowiedź @Layke jest dobra, ale jeśli masz mnóstwo danych i nie chcesz czekać wiecznie, przeczytaj „ Konfiguracja AWS CLI S3 ”.
Następujące polecenia powiedzą AWS CLI, aby używał 1000 wątków do wykonywania zadań (każdy mały plik lub część wieloczęściowej kopii) i patrzył w przyszłość 100 000 zadań:
Po ich uruchomieniu możesz użyć prostej
sync
komendy:lub
W systemie z 4 rdzeniami procesora i 16 GB pamięci RAM, w przypadkach takich jak moje (pliki 3-50 GB) prędkość synchronizacji / kopiowania wzrosła z około 9,5 Mb / s do 700 + MiB / s, co oznacza wzrost prędkości 70x w stosunku do domyślnej konfiguracji.
źródło
Zrobiłem trochę rozwoju dla S3 i nie znalazłem prostego sposobu na pobranie całego wiadra.
Jeśli chcesz kodować w Javie, biblioteka jets3t lib jest łatwa w użyciu, aby utworzyć listę wiader i iterować tę listę, aby je pobrać.
Najpierw pobierz zestaw publicznego klucza prywatnego z konsoli zarządzania AWS, aby móc utworzyć obiekt S3service:
Następnie uzyskaj tablicę obiektów segmentów:
Na koniec iteruj po tej tablicy, aby pobierać obiekty pojedynczo za pomocą:
Umieszczam kod połączenia w bezpiecznym wątku singletonie. Niezbędna składnia try / catch została pominięta z oczywistych powodów.
Jeśli wolisz kodować w Pythonie, możesz zamiast tego użyć Boto.
Po rozejrzeniu się po BucketExplorer „ Pobieranie całego wiadra ” może zrobić, co chcesz.
źródło
Interfejs API AWS sdk będzie najlepszą opcją do przesyłania całego folderu i repozytorium do s3 oraz pobierania całego segmentu s3 do lokalnego.
Do przesyłania całego folderu do s3
do pobrania całego segmentu s3 lokalnie
możesz także przypisać ścieżkę Podobnie jak BucketName / Path dla konkretnego folderu w s3 do pobrania
źródło
Możesz to zrobić za pomocą https://github.com/minio/mc :
mc obsługuje także sesje, wznawianie pobierania, przesyłanie i wiele innych.
mc
obsługuje systemy operacyjne Linux, OS X i Windows. Napisane w Golang i wydane na Apache w wersji 2.0.źródło
Jeśli korzystasz z Firefoksa z S3Fox, to NIE pozwala ci wybrać wszystkich plików (wybierz najpierw Shift i Shift) i kliknij prawym przyciskiem myszy i pobierz wszystko ... Zrobiłem to z ponad 500 plikami bez problemu
źródło
W systemie Windows moim preferowanym narzędziem GUI jest Cloudberry Explorer dla S3., Http://www.cloudberrylab.com/free-amazon-s3-explorer-cloudfront-IAM.aspx . Ma dość dopracowany eksplorator plików, interfejs podobny do ftp.
źródło
Jeśli masz tam tylko pliki (bez podkatalogów), szybkim rozwiązaniem jest wybranie wszystkich plików (
click
pierwszego,Shift+click
ostatniego) i naciśnięcieEnter
lubright click
i wybranieOpen
. W przypadku większości plików danych zostanie to pobrane bezpośrednio na komputer.źródło
Aby dodać kolejną opcję GUI, używamy funkcjonalności S3 WinSCP . Połączenie jest bardzo łatwe, wymaga tylko klucza dostępu i tajnego klucza w interfejsie użytkownika. Następnie możesz przeglądać i pobierać dowolne pliki z dowolnych dostępnych segmentów, w tym rekurencyjne pobieranie zagnieżdżonych folderów.
Ponieważ usunięcie oprogramowania za pomocą zabezpieczeń może być wyzwaniem, a WinSCP jest dość powszechny, może być bardzo korzystne, aby po prostu z niego korzystać, zamiast instalować bardziej wyspecjalizowane narzędzie.
źródło
Użytkownik systemu Windows musi pobrać S3EXPLORER z tego łącza, które zawiera również instrukcje instalacji: - http://s3browser.com/download.aspx
Następnie podaj poświadczenia AWS, takie jak klucz tajny, klucz dostępu i region do s3explorer, ten link zawiera instrukcję konfiguracji dla s3explorer: Kopiuj wklej link w przeglądarce: s3browser.com/s3browser-first-run.aspx
Teraz wszystkie wiadra s3 będą widoczne na lewym panelu s3explorer.
Po prostu wybierz wiadro i kliknij menu Wiadra w lewym górnym rogu, a następnie wybierz z menu opcję Pobierz wszystkie pliki do. Poniżej znajduje się zrzut ekranu dla tego samego:
Ekran wyboru łyżki
Następnie przejrzyj folder, aby pobrać wiadro z określonego miejsca
Kliknij OK, a pobieranie się rozpocznie.
źródło
aws sync to idealne rozwiązanie. Nie działa dwukierunkowo. Jest to jedna droga od źródła do miejsca docelowego. Ponadto, jeśli masz wiele elementów w wiadrze, dobrym pomysłem będzie utworzenie najpierw punktu końcowego s3, aby pobieranie odbywało się szybciej (ponieważ pobieranie nie odbywa się przez Internet, ale przez intranet) i bez opłat
źródło
Oto kilka rzeczy, aby pobrać wszystkie wiadra, wymienić je, wymienić ich zawartość.
/ ---------------------------- Metody rozszerzenia ------------------- ------------------ /
}
źródło
Możesz to po prostu uzyskać za pomocą polecenia s3cmd :
źródło
Jak wyjaśnił Neel Bhaat na tym blogu , istnieje wiele różnych narzędzi, które można wykorzystać w tym celu. Niektóre są dostarczane z AWS, a większość z nich to narzędzia innych firm. Wszystkie te narzędzia wymagają zapisania klucza i hasła do konta AWS w samym narzędziu. Zachowaj ostrożność podczas korzystania z narzędzi innych firm, ponieważ dane uwierzytelniające, które zaoszczędzisz, mogą cię kosztować, całą twoją wartość i spowodować śmierć.
Dlatego zawsze zalecam używanie do tego celu interfejsu AWS CLI . Możesz po prostu zainstalować to z tego linku . Następnie uruchom następujące polecenie i zapisz swój klucz, tajne wartości w interfejsie AWS CLI.
I użyj następującego polecenia, aby zsynchronizować łyżkę AWS S3 z komputerem lokalnym. (Komputer lokalny powinien mieć zainstalowany interfejs AWS CLI)
Przykłady:
1) W przypadku AWS S3 do pamięci lokalnej
2) Z lokalnego magazynu do AWS S3
3) Z łyżki AWS s3 do innej łyżki
źródło
Jeśli chcesz tylko pobrać segment z AWS, najpierw zainstaluj interfejs AWS CLI na swoim komputerze. W terminalu zmień katalog, do którego chcesz pobrać pliki i uruchom to polecenie.
Jeśli chcesz również zsynchronizować katalogi lokalne i katalogi s3 (w przypadku dodania niektórych plików do folderu lokalnego), uruchom następującą komendę:
źródło
AWS CLI to najlepsza opcja do pobrania całego segmentu S3 lokalnie.
Zainstaluj AWS CLI.
Skonfiguruj interfejs AWS CLI do korzystania z domyślnych poświadczeń bezpieczeństwa i domyślnego regionu AWS.
Aby pobrać całą komendę S3, użyj polecenia
aws s3 sync s3: // twojabucketname localpath
Odniesienie do korzystania z AWS cli dla różnych usług AWS: https://docs.aws.amazon.com/cli/latest/reference/
źródło
Za pomocą tego polecenia cli AWS można pobrać całą zawartość segmentu S3 do folderu lokalnego
Jeśli widzisz taki błąd
--no-Verify-ssl (boolean)
Domyślnie interfejs AWS CLI używa protokołu SSL podczas komunikacji z usługami AWS. Dla każdego połączenia SSL interfejs AWS CLI zweryfikuje certyfikaty SSL. Ta opcja zastępuje domyślne zachowanie weryfikacji certyfikatów SSL. odniesienie
Użyj tego znacznika z poleceniem --no-Verify-ssl
źródło
s3 sync
jest już wielokrotnie omówione powyżej. + Sugerowanie użycia--no-verify-ssl
bez wyjaśnienia konsekwencji dla bezpieczeństwa jest przestępstwem.Jeśli segment jest dość duży, wywoływane jest polecenie,
s4cmd
które wykonuje połączenia równoległe i skraca czas pobierania:Aby zainstalować go na Debian Like
Jeśli masz pip:
Odczyta
~/.s3cfg
plik, jeśli jest obecny (jeśli nie jest zainstalowanys3cmd
i uruchomionys3cmd --configure
) lub możesz określić--access-key=ACCESS_KEY --secret-key=SECRET_KEY
w poleceniu.Cli jest podobny do
s3cmd
. W twoim przypadkusync
zaleca się opcję a, ponieważ możesz anulować pobieranie i rozpocząć je ponownie bez konieczności ponownego pobierania plików.Zachowaj ostrożność, jeśli pobierzesz dużo danych (> 1 TB), może to wpłynąć na rachunek, najpierw obliczyć, który będzie kosztem
źródło
Jak powiedział @layke, najlepszą praktyką jest pobieranie pliku z S3 cli, jest to bezpieczne. Ale w niektórych przypadkach ludzie muszą użyć wget, aby pobrać plik, a oto rozwiązanie
Spowoduje to otrzymanie tymczasowego publicznego adresu URL, którego możesz użyć do pobrania treści z S3 przy użyciu presign_url, w twoim przypadku przy użyciu wget lub innego klienta pobierania.
źródło
Wypróbuj to polecenie:
aws s3 sync yourBucketnameDirectory yourLocalDirectory
Na przykład jeśli nazwa wiadra to
myBucket
i katalog lokalny toc:\local
:aws s3 sync s3://myBucket c:\local
Aby uzyskać więcej informacji o awscli, sprawdź tę instalację aws cli
źródło