Ściąganie całego zasobnika S3?

Zauważyłem, że nie ma opcji pobierania całego zasobnika S3 z konsoli zarządzania AWS.

Czy jest łatwy sposób, aby chwycić wszystko w jednym z moich wiadra? Myślałem o upublicznieniu folderu głównego, użyciu wget, aby pobrać to wszystko, a następnie ponownie uczynić go prywatnym, ale nie wiem, czy jest łatwiejszy sposób.

Author: codeforester, 2011-12-28

23 answers

AWS CLI

Dokumentacja dla AWS CLI

AWS niedawno wypuściły swoje narzędzia wiersza poleceń. Działa podobnie do boto i może być zainstalowany za pomocą sudo easy_install awscli lub sudo pip install awscli

Po zainstalowaniu możesz po prostu uruchomić:

Polecenie :

aws s3 sync s3://mybucket .

Wyjście :

download: s3://mybucket/test.txt to test.txt
download: s3://mybucket/test2.txt to test2.txt

Spowoduje to pobranie wszystkich plików (Synchronizacja w jedną stronę). Spowoduje to , a nie usunięcie istniejących plików w bieżącym katalogu (chyba że określisz -- delete ), i nie zmieni ani nie usunie żadnych plików na S3.

Można również wykonać synchronizację łyżki S3 do łyżki S3 lub synchronizację lokalną do łyżki S3.

Zobacz dokumentację i inne przykłady:

Http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html

 861
Author: Layke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-05 11:07:58

Możesz użyć s3cmd , Aby pobrać wiadro.

s3cmd --configure
s3cmd sync s3://bucketnamehere/folder /destination/folder

Update

Istnieje inne narzędzie, którego możesz użyć o nazwie Rclone . Poniżej znajduje się przykład kodu w dokumentacji Rclone.

rclone sync /home/local/directory remote:bucket
 150
Author: philhq,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-01 01:48:37

Użyłem kilku różnych metod, aby skopiować dane Amazon S3 do lokalnej maszyny, W tym s3cmd, i zdecydowanie najłatwiejszy jest Cyberduck . Wszystko, co musisz zrobić, to wprowadzić swoje poświadczenia Amazon i użyć prostego interfejsu, aby pobrać / przesłać / zsynchronizować dowolne wiadra / foldery / pliki.

Zrzut ekranu

 68
Author: wedocando,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-08 12:17:38

Aby pobrać za pomocą AWS S3 CLI:

aws s3 cp s3://WholeBucket LocalFolder --recursive
aws s3 cp s3://Bucket/Folder LocalFolder --recursive

Aby pobrać kod, użyj AWS SDK .

Aby pobrać GUI, użyj Cyberduck .

Mam nadzieję, że to pomoże.. :)
 24
Author: Sarat Chandra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-10 11:23:12

Masz w zasadzie wiele opcji, aby to zrobić, ale najlepszą z nich jest użycie AWS CLI

Oto przeglądarka
  • Krok 1

Pobierz i zainstaluj AWS CLI na swoim komputerze

Zainstaluj AWS CLI za pomocą Instalatora MSI (Windows)

Instalacja AWS CLI za pomocą dołączonego Instalatora (Linux, OS X lub Unix)

  • Krok 2

Konfiguracja AWS CLI

Tutaj wpisz opis obrazka

Upewnij się, że wprowadziłeś poprawny klucz dostępu i klucz tajny , który otrzymałeś podczas tworzenia konta

  • Krok 3

Sync S3 bucket with following command

aws s3 sync s3://yourbucket /local/path

Zastąp powyższe polecenie następującymi danymi

Yourbucket > > wiadro s3, które chcesz pobrać

/local / path > > path w Twoim systemie lokalnym, gdzie chcesz pobrać wszystkie pliki

Mam nadzieję, że to pomoże!
 23
Author: Darshan Lila,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-20 17:17:29

Przeglądarka S3 jest najprostszym sposobem, jaki znalazłem. Jest to doskonałe oprogramowanie... I jest bezpłatny do użytku niekomercyjnego. Tylko Windows.

Http://s3browser.com/

 17
Author: dworrad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-08 12:18:18

Jeśli korzystasz z Visual Studio, pobierz http://aws.amazon.com/visualstudio/

Po zainstalowaniu przejdź do Visual Studio-AWS Explorer-S3 - your bucket-Double click

W oknie będzie można wybrać wszystkie pliki. Kliknij prawym przyciskiem myszy i pobierz pliki.

 15
Author: Ives.me,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-04 00:23:52

Inną opcją, która może pomóc niektórym użytkownikom osx , jest transmisja . Jest to program ftp, który pozwala również połączyć się z plikami s3. I ma opcję zamontowania dowolnego magazynu ftp lub s3 jako folderu w Finderze. Ale to tylko na ograniczony czas.

 9
Author: Diederik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-17 07:50:47

Zrobiłem trochę rozwoju dla s3 i nie znalazłem prosty sposób, aby pobrać cały bucket. Jeśli chcesz kodować w Javie, lib jets3t jest łatwy w użyciu, aby utworzyć listę bucketów i iterację nad tą listą, aby je pobrać.

Http://jets3t.s3.amazonaws.com/downloads.html

Najpierw pobierz publiczny klucz prywatny z modułu zarządzania AWS, aby móc utworzyć obiekt S3service...

AWSCredentials awsCredentials = new AWSCredentials(YourAccessKey, YourAwsSecretKey);
s3Service = new RestS3Service(awsCredentials);

Następnie zdobądź tablicę swoich wiader obiektów...

S3Object[] objects = s3Service.listObjects(YourBucketNameString);

Wreszcie, iterację nad tą tablicą, aby pobierać obiekty pojedynczo za pomocą tego kodu...

S3Object obj = s3Service.getObject(bucket, fileName);
            file = obj.getDataInputStream();

Umieściłem kod połączenia w threadsafe singleton. Niezbędna składnia try/catch została pominięta z oczywistych powodów.

Jeśli wolisz kodować w Pythonie, możesz użyć Boto.

PS po rozglądnięciu się po Bucketexplorerze rób co chcesz. https://forums.aws.amazon.com/thread.jspa?messageID=248429
 8
Author: jeremyjjbrown,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-28 21:35:57

Użyj tego polecenia z AWS CLI :

aws s3 cp s3://bucketname. --recursive
 6
Author: ashack,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-04 21:30:07

Jeśli używasz Firefoksa z S3Fox, to pozwala wybrać wszystkie pliki (shift-Wybierz pierwszy i ostatni) i rightclick i pobierz wszystkie... Zrobiłem to z 500 + plikami bez problemu

 5
Author: jpwynn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-14 06:23:36

Odpowiedź @Layke jest dobra, ale jeśli masz mnóstwo danych i nie chcesz czekać w nieskończoność, powinieneś zwrócić szczególną uwagę na tę dokumentację na Jak uzyskać polecenie synchronizacji AWS S3 CLI, aby zsynchronizować wiadra z masową równoległością . Następujące polecenia każą AWS CLI używać 1000 wątków do wykonywania zadań (każdy mały plik lub jedna część kopii wieloczęściowej) i patrzeć w przyszłość 100 000 zadań:

aws configure set default.s3.max_concurrent_requests 1000
aws configure set default.s3.max_queue_size 100000

Po ich uruchomieniu można użyć polecenia simple sync jako "follows": {]}

aws s3 sync s3://source-bucket/source-path s3://destination-bucket/destination-path

Lub

aws s3 sync s3://source-bucket/source-path c:\my\local\data\path

W systemie z 4 rdzeniami CPU i 16GB RAM, dla takich przypadków jak mój (Pliki 3-50GB) prędkość synchronizacji/kopiowania wzrosła z około 9,5 MiB / s do 700 + MiB / s, wzrost prędkości 70x w stosunku do domyślnej konfiguracji.

 5
Author: James,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-05 13:24:23

Gdy w Windows, moim preferowanym narzędziem GUI do tego 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.

 4
Author: fundead,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-29 03:15:30

Możesz to zrobić z https://github.com/minio/mc :

mc cp -r https://s3-us-west-2.amazonaws.com/bucketName/ localdir

Mc obsługuje również sesje, wznawiane pobieranie, przesyłanie i wiele innych. mc obsługuje systemy operacyjne Linux, OS X i Windows. Napisany w Golang i wydany pod Apache w wersji 2.0.

 3
Author: Krishna Srinivas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-08 20:28:02

Jeśli masz tam tylko pliki (bez podkatalogów), szybkim rozwiązaniem jest zaznaczenie wszystkich plików (click Na Pierwszym, Shift+click na ostatnim) i naciśnięcie Enter lub right click i wybranie Open. W przypadku większości plików danych pobierze je bezpośrednio na komputer.

 3
Author: Lukasz Czerwinski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-05 23:16:46
  1. Użytkownik systemu Windows musi pobrać S3EXPLORER z tego linku, który również zawiera instrukcje instalacji: - http://s3browser.com/download.aspx

  2. Następnie podaj dane uwierzytelniające AWS, takie jak secretkey, accesskey i region do s3explorer, ten link zawiera instrukcję konfiguracji dla s3explorer: kopiuj wklej Link w przeglądarce: s3browser.com/s3browser-first-run.aspx

  3. Teraz wszystkie wiadra s3 będą widoczne na lewym panelu s3explorer.

  4. Po prostu wybierz wiadro i kliknij Menu wiadra w lewym górnym rogu, a następnie wybierz opcję Pobierz wszystkie pliki do opcji z menu. Poniżej znajduje się zrzut ekranu dla tego samego:

Ekran Wyboru Wiadra

  1. Następnie przejrzyj folder, Aby pobrać wiadro w określonym miejscu

  2. Kliknij OK i rozpocznie się pobieranie.

 1
Author: Patrick R,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-22 12:49:55

AWS sync to idealne rozwiązanie. To nie działa w dwie strony.. jest to jedna droga od źródła do celu. Ponadto, jeśli masz wiele elementów w bucket, dobrym pomysłem będzie najpierw utworzenie punktu końcowego s3, aby pobieranie odbywało się szybciej (ponieważ pobieranie nie odbywa się przez internet, ale przez intranet) i bez opłat

 1
Author: Deepak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-26 10:55:09

Tutaj jest kilka rzeczy do pobrania wszystkich wiadra, wymień je, wymień ich zawartość.

    //connection string
    private static void dBConnection() {
    app.setAwsCredentials(CONST.getAccessKey(), CONST.getSecretKey());
    conn = new AmazonS3Client(app.getAwsCredentials());
    app.setListOfBuckets(conn.listBuckets());
    System.out.println(CONST.getConnectionSuccessfullMessage());
    }

    private static void downloadBucket() {

    do {
        for (S3ObjectSummary objectSummary : app.getS3Object().getObjectSummaries()) {
            app.setBucketKey(objectSummary.getKey());
            app.setBucketName(objectSummary.getBucketName());
            if(objectSummary.getKey().contains(CONST.getDesiredKey())){
                //DOWNLOAD
                try 
                {
                    s3Client = new AmazonS3Client(new ProfileCredentialsProvider());
                    s3Client.getObject(
                            new GetObjectRequest(app.getBucketName(),app.getBucketKey()),
                            new File(app.getDownloadedBucket())
                            );
                } catch (IOException e) {
                    e.printStackTrace();
                }

                do
                {
                     if(app.getBackUpExist() == true){
                        System.out.println("Converting back up file");
                        app.setCurrentPacsId(objectSummary.getKey());
                        passIn = app.getDataBaseFile();
                        CONVERT= new DataConversion(passIn);
                        System.out.println(CONST.getFileDownloadedMessage());
                    }
                }
                while(app.getObjectExist()==true);

                if(app.getObjectExist()== false)
                {
                    app.setNoObjectFound(true);
                }
            }
        }
        app.setS3Object(conn.listNextBatchOfObjects(app.getS3Object()));
    } 
    while (app.getS3Object().isTruncated());
}

/----------------------------Metody Rozszerzenia-------------------------------------/

//Unzip bucket after download 
public static void unzipBucket() throws IOException {
    unzip = new UnZipBuckets();
    unzip.unZipIt(app.getDownloadedBucket());
    System.out.println(CONST.getFileUnzippedMessage());
}

//list all S3 buckets
public static void listAllBuckets(){
    for (Bucket bucket : app.getListOfBuckets()) {
        String bucketName = bucket.getName();
        System.out.println(bucketName + "\t" + StringUtils.fromDate(bucket.getCreationDate()));
    }
}

//Get the contents from the auto back up bucket
public static void listAllBucketContents(){     
    do {
        for (S3ObjectSummary objectSummary : app.getS3Object().getObjectSummaries()) {
            if(objectSummary.getKey().contains(CONST.getDesiredKey())){
                System.out.println(objectSummary.getKey() + "\t" + objectSummary.getSize() + "\t" + StringUtils.fromDate(objectSummary.getLastModified()));
                app.setBackUpCount(app.getBackUpCount() + 1);   
            }
        }
        app.setS3Object(conn.listNextBatchOfObjects(app.getS3Object()));
    } 
    while (app.getS3Object().isTruncated());
    System.out.println("There are a total of : " + app.getBackUpCount() + " buckets.");
}

}

 1
Author: John Hanewich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-23 15:48:03

Możesz go łatwo uzyskać za pomocą s3cmd komendy:

s3cmd get --recursive --continue s3://test-bucket local-directory/
 0
Author: Hubbitus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-13 19:31:30

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 AWS, gdzie większość to narzędzia innych firm. Wszystkie te narzędzia wymagają zapisania klucza konta AWS i tajemnicy 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 sprawić, że umrzesz.

Dlatego zawsze zalecam używanie w tym celu AWS CLI. Możesz po prostu zainstaluj to z tego linku . Następnie uruchom następujące polecenie i zapisz swój klucz, tajne wartości w AWS CLI.

aws configure

I użyj następującego polecenia, aby zsynchronizować wiadro AWS S3 z lokalnym komputerem. (Lokalna maszyna powinna mieć zainstalowany AWS CLI)

aws s3 sync <source> <destination>

Przykłady:

1) dla AWS S3 do Local Storage

aws s3 sync <S3Uri> <LocalPath>

2) z pamięci lokalnej do AWS S3

aws s3 sync <LocalPath> <S3Uri>

3) z wiadra AWS s3 na inne wiadro

aws s3 sync <S3Uri> <S3Uri> 
 0
Author: Keet Sugathadasa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-11 10:07:49

Jeśli chcesz pobrać wiadro tylko z AWS, najpierw zainstaluj AWS CLI w swoim komputerze. W terminalu zmień katalog do którego chcesz pobrać pliki i uruchom to polecenie.

aws s3 sync s3://bucket-name .

Jeśli chcesz zsynchronizować zarówno katalogi lokalne, jak i s3( jeśli dodałeś pliki do folderu lokalnego), uruchom to polecenie:

aws s3 sync . s3://bucket-name
 0
Author: Muzammil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-20 07:06:19

Jak powiedział @ layke, jest to najlepsza praktyka, aby pobrać plik z S3 cli jest to bezpieczne i bezpieczne. Ale w niektórych przypadkach ludzie muszą użyć wget, aby pobrać plik i oto rozwiązanie

aws s3 presign s3://<your_bucket_name/>

To presign zapewni tymczasowy publiczny adres URL, którego możesz użyć do pobierania zawartości z S3 za pomocą presign_url, w Twoim przypadku za pomocą wget lub innego klienta pobierania.

 0
Author: Balaji JB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-24 03:59:34

Chrome apps extended-S3-browser

Możesz go używać za darmo

W końcu użyłem cloud berry kupił go i było super cloud berry

 -1
Author: shareef,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-26 14:00:39