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

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

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

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

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

Ответы [ 29 ]

1 голос
/ 26 января 2017

Синхронизация AWS является идеальным решением.Это не делает два пути ... это один путь от источника до места назначения.Кроме того, если у вас есть много элементов в корзине, было бы неплохо сначала создать конечную точку s3, чтобы загрузка происходила быстрее (поскольку загрузка происходит не через Интернет, а через интранет) и без затрат

1 голос
/ 22 июля 2016
  1. Пользователь Windows должен скачать S3EXPLORER по этой ссылке, которая также содержит инструкции по установке: - http://s3browser.com/download.aspx

  2. Затем предоставьте свои учетные данные AWS, такие как секретный ключ, ключ доступа и регион, для s3explorer, эта ссылка содержит инструкцию по настройке для s3explorer: Скопируйте Вставить ссылку в браузере: s3browser.com/s3browser-first-run.aspx

  3. Теперь все ваши корзины s3 будут видны на левой панели s3explorer.

  4. Просто выберите сегмент и нажмите меню «Ведра» в верхнем левом углу, затем выберите «Загрузить все файлы в опцию» из меню. Ниже приведен скриншот для того же:

Экран выбора ковша

  1. Затем просмотрите папку, чтобы загрузить корзину в определенном месте

  2. Нажмите OK, и загрузка начнется.

1 голос
/ 11 июня 2018

Как объяснил Нил Бхаат в этом блоге , для этой цели можно использовать множество различных инструментов.Некоторые из них предоставляются AWS, а большинство - сторонними инструментами.Все эти инструменты требуют сохранения ключа учетной записи AWS и секрета в самом инструменте.Будьте очень осторожны при использовании сторонних инструментов, поскольку учетные данные, которые вы сохраняете, могут стоить вам, вашей полной стоимости и просто обескураживают.

Поэтому я всегда рекомендую использовать для этого AWS CLI цель.Вы можете просто установить это из по этой ссылке .Затем выполните следующую команду и сохраните ключ, секретные значения в CLI AWS.

aws configure

и используйте следующую команду для синхронизации вашего AWS S3 Bucket с вашим локальным компьютером.(На локальном компьютере должен быть установлен интерфейс командной строки AWS)

aws s3 sync <source> <destination>

Примеры:

1) Для AWS S3 в локальном хранилище

aws s3 sync <S3Uri> <LocalPath>

2) Из локального хранилища в AWS S3

aws s3 sync <LocalPath> <S3Uri>

3) Из корзины AWS s3 в другую корзину

aws s3 sync <S3Uri> <S3Uri> 
0 голосов
/ 24 июня 2019

Если корзина довольно большая, есть команда под названием s4cmd, которая устанавливает параллельные соединения и сокращает время загрузки:

Чтобы установить ее в Debian, как

apt install s4cmd

Если выhave pip:

pip install s4cmd

Он будет читать файл ~/.s3cfg, если он есть (если не установить s3cmd и запустить s3cmd --configure), или вы можете указать --access-key=ACCESS_KEY --secret-key=SECRET_KEY в команде.

Кли похож на s3cmd.В вашем случае рекомендуется sync, так как вы можете отменить загрузку и начать ее заново без необходимости повторной загрузки файлов.

s4cmd [--access-key=ACCESS_KEY --secret-key=SECRET_KEY] sync s3://<your-bucket> /some/local/dir

Будьте осторожны, если вы загружаете много данных (> 1TB) это может повлиять на ваш счет, сначала рассчитайте, какова будет стоимость

0 голосов
/ 20 июня 2019

Вы можете использовать эту команду AWS cli для загрузки всего содержимого сегмента S3 в локальную папку

aws s3 sync s3://your-bucket-name "Local Folder Path"

Если вы видите такую ​​ошибку

fatal error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

- no-verify-ssl (логическое)

По умолчанию интерфейс командной строки AWS использует SSL при взаимодействии со службами AWS. Для каждого SSL-соединения AWS CLI будет проверять SSL-сертификаты. Этот параметр переопределяет поведение по умолчанию при проверке сертификатов SSL. ссылка

Использовать этот тег с командой - no-verify-ssl

aws s3 sync s3://your-bucket-name "Local Folder Path" --no-verify-ssl
0 голосов
/ 04 мая 2019

AWS CLI - лучший вариант для локальной загрузки всей корзины S3.

  1. Установить AWS CLI.

  2. Настройка CLI AWS для использования учетных данных безопасности по умолчанию и региона AWS по умолчанию.

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

    aws s3 sync s3: // yourbucketname localpath

Ссылка на использование AWS cli для различных сервисов AWS: https://docs.aws.amazon.com/cli/latest/reference/

0 голосов
/ 24 сентября 2018

Как сказал @layke, рекомендуется загружать файл с S3 cli безопасно и надежно. Но в некоторых случаях люди должны использовать wget для загрузки файла, и вот решение

aws s3 presign s3://<your_bucket_name/>

Это будет означать, что вы получите временный общедоступный URL-адрес, который вы можете использовать для загрузки контента с S3 с помощью presign_url, в вашем случае - с помощью wget или любого другого клиента загрузки.

0 голосов
/ 08 марта 2019

Попробуйте эту команду:

aws s3 sync yourBucketnameDirectory yourLocalDirectory

Например, если ваше имя сегмента myBucket, а локальный каталог c:\local, то:

aws s3 sync s3://myBucket c:\local

Для получения дополнительной информации о awscli, проверьте это AWS Cli установки

0 голосов
/ 18 октября 2018

Мой комментарий не добавляет новое решение. Как говорили многие здесь, aws s3 sync - лучший. Но никто не указал на мощный вариант: dryrun. Эта опция позволяет вам увидеть, что будет загружено / загружено с / на s3 при использовании sync. Это действительно полезно, когда вы не хотите перезаписывать контент ни в вашем локальном хранилище, ни в сегменте s3. Вот как это используется:

aws s3 sync <source> <destination> --dryrun

Я использовал его все время, прежде чем помещать новый контент в корзину, чтобы не загружать нежелательные изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...