Загрузка всего ведра S3? - PullRequest
       41

Загрузка всего ведра S3?

566 голосов
/ 28 декабря 2011

Я заметил, что, похоже, нет возможности загрузить весь контейнер S3 из Консоли управления AWS.

Есть ли простой способ собрать все в одном из моих контейнеров?Я думал о том, чтобы сделать корневую папку общедоступной, используя wget, чтобы захватить все это, а затем снова сделать ее приватной, но я не знаю, есть ли более простой способ.

Ответы [ 29 ]

1083 голосов
/ 12 сентября 2013

AWS CLI

Документация для AWS CLI

AWS недавно выпустила свои инструменты командной строки.Это работает так же, как boto и может быть установлен с помощью sudo easy_install awscli или sudo pip install awscli

После установки вы можете просто запустить:

Command :

aws s3 sync s3://mybucket .

Вывод :

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

Это загрузит все ваши файлы (односторонняя синхронизация).Он не удалит все существующие файлы в вашем текущем каталоге (если вы не укажете --delete ), и не изменит и не удалит файлы на S3.

Вы также можете выполнить S3 Bucket для S3 Bucket или локально для S3 Bucket Sync.

Ознакомьтесь с документацией и другими примерами:

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

Загрузка папки из ведра

В то время как приведенный выше пример показывает, как загрузитьполный пакет, вы также можете загрузить папку с помощью повторного выполнения, выполнив

aws s3 cp s3://BUCKETNAME/PATH/TO/FOLDER LocalFolderName --recursive

. Это даст CLI команду рекурсивно загружать все файлы и ключи папок в каталоге PATH/TO/FOLDER в сегменте BUCKETNAME.

158 голосов
/ 10 марта 2012

Вы можете использовать s3cmd , чтобы загрузить ваше ведро.

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

Обновление

Существует еще один инструмент, который вы можете использовать под названием Rclone . Ниже приведен пример кода в документации по Rclone.

rclone sync /home/local/directory remote:bucket
74 голосов
/ 05 октября 2012

Я использовал несколько различных методов для копирования данных Amazon S3 на локальную машину, включая s3cmd, и на данный момент самым простым является Cyberduck .Все, что вам нужно сделать, это ввести свои учетные данные Amazon и использовать простой интерфейс для загрузки / выгрузки / синхронизации любых ваших корзин / папок / файлов.

Screenshot

38 голосов
/ 12 декабря 2017

У вас есть много вариантов для этого, но лучший из них - AWS CLI

Вот прохождение

  • Шаг 1

Загрузите и установите AWS CLI на свой компьютер

Установите интерфейс командной строки AWS с помощью установщика MSI (Windows)

Установите интерфейс командной строки AWS с помощью комплектного установщика (Linux, OS X или Unix)

  • Шаг 2

Настройка AWS CLI

enter image description here

Убедитесь, что вы ввели действительные ключи доступа и секретный ключ , которые вы получили при создании учетной записи

  • Шаг 3

Синхронизация корзины s3 с помощью следующей команды

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

Заменить вышеприведенную команду следующими данными

yourbucket >> ваше ведро s3, которое вы хотите загрузить

/ local / path >> путь в вашей локальной системе, куда вы хотите загрузить все файлы

Надеюсь, это поможет!

37 голосов
/ 10 апреля 2017

Для загрузки с использованием AWS S3 CLI:

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

Для загрузки с использованием кода используйте AWS SDK .

Для загрузки с использованием графического интерфейса пользователя используйте Cyberduck .

Надеюсь, что это поможет ..:)

18 голосов
/ 19 декабря 2012

Браузер S3 - самый простой способ, который я нашел. Это отличное программное обеспечение ... И это бесплатно для некоммерческого использования. Только для Windows.

http://s3browser.com/

16 голосов
/ 04 февраля 2014

Если вы используете Visual Studio, загрузите http://aws.amazon.com/visualstudio/

После установки перейдите в Visual Studio - AWS Explorer - S3 - Ваше ведро - Двойной щелчок

В окне вы сможетевыбрать все файлы.Щелкните правой кнопкой мыши и загрузите файлы.

9 голосов
/ 17 октября 2013

Другой вариант, который может помочь некоторым пользователям osx , это передача .Это программа ftp, которая также позволяет вам подключаться к файлам s3.И у него есть возможность смонтировать любое хранилище ftp или s3 как папку в поисковике.Но это только на ограниченное время.

8 голосов
/ 29 декабря 2011

Я немного поработал над s3 и не нашел простого способа загрузить целое ведро.Если вы хотите кодировать на Java, библиотеку jets3t легко использовать для создания списка сегментов и перебора этого списка для их загрузки.

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

сначала получите открытый закрытый ключустановить из утилит управления AWS, чтобы вы могли создать объект S3service ...

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

, а затем получить массив объектов Buckets ...

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

, наконец, выполнить эту итерациюмассив для загрузки объектов по одному с этим кодом ...

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

Я поместил код подключения в однозаходный безопасный поток.Необходимый синтаксис try / catch был опущен по понятным причинам.

Если вы предпочитаете писать код на Python, вы можете использовать вместо этого Boto.

PS после осмотра BucketExplorer я могу делать то, что вы хотите.https://forums.aws.amazon.com/thread.jspa?messageID=248429

7 голосов
/ 05 ноября 2016

Используйте эту команду с AWS CLI :

aws s3 cp s3://bucketname. --recursive
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...