2013-08-14 2 views
17

я могу нажать некоторое содержимое в ведро S3 со своими учетными данными через S3cmd инструмент с s3cmd пут contentfile S3: // test_bucket/test_fileКак загрузить файл из ведра S3 с помощью wget?

Вопрос в том, я обязан загружать содержимое из этого ведра в других компьютерах, которые дон У вас установлен s3cmd, но у них установлен wget.

, когда я пытаюсь загрузить некоторое содержимое из моего ведра с Wget я получаю это:

https://s3.amazonaws.com/test_bucket/test_file 
--2013-08-14 18:17:40-- `https`://s3.amazonaws.com/test_bucket/test_file 
Resolving s3.amazonaws.com (s3.amazonaws.com)... [ip_here] 
Connecting to s3.amazonaws.com (s3.amazonaws.com)|ip_here|:port... connected. 
HTTP request sent, awaiting response... 403 Forbidden 
`2013`-08-14 18:17:40 ERROR 403: Forbidden. 

я вручную сделал это ведро общественности через веб-консоль Amazon AWS.

Вопрос: Как загрузить контент из ведра S3 с помощью wget? в локальный файл txt?

ответ

7

Понял ... Если вы загрузите файл в ведро S3 с S3CMD с --acl общественного флага, то один должен быть в состоянии загрузить файл из S3 с Wget легко ...

Вывод: В для того чтобы скачать с Wget, первый из одной нужно загрузить содержимое в S3 с s3cmd put --acl public --guess-mime-type <test_file> s3://test_bucket/test_file

в качестве альтернативы вы можете попробовать:

s3cmd setacl --acl-public --guess-mime-type s3://test_bucket/test_file 

уведомление флаг SetACL выше. КОТОРАЯ установить файл в s3 доступны публично , то вы можете выполнить команду wget http://s3.amazonaws.com/test_bucket/test_file

21

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

http://{bucket-name}.s3.amazonaws.com/<path-to-file>

Теперь предположим, что ваш путь s3 файла:

s3://test-bucket/test-folder/test-file.txt

Вы должны быть в состоянии wget этот файл со следующим адресом:

http://test-bucket.s3.amazonaws.com/test-folder/test-file.txt

+0

Обратите внимание, что вы используете протокол HTTP, и мне дают URL-адрес HTTPS с консоли управления Amazon ... как HTTPS меняет ситуацию? – Becks

13

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

wget --no-check-certificate --no-proxy 'http://your_bucket.s3.amazonaws.com/my-file.jpg' 
+0

Это сработало для меня спасибо – iamjonesy

+0

Отлично работает! Не нужно устанавливать s3cmd или другой CLI :) –

3

AWS кли имеет команду «presign», что можно использовать, чтобы получить временную общественность URL-адрес частного ресурса s3.

aws s3 presign s3://private_resource 

Затем вы можете использовать wget для загрузки ресурса с использованием назначенного URL-адреса.

Смежные вопросы