Как загрузить файл из ведра S3 с помощью wget?
Я могу подтолкнуть некоторый контент к ведро S3 с моими учетными данными через инструмент S3cmd с s3cmd put contentfile S3://test_bucket/test_file
Вопрос в том, что мне необходимо загрузить контент из этого ведра на других компьютерах, на которых нет 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?
Ответы
Ответ 1
Получил это... Если вы загружаете файл в ведро 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
Ответ 2
Вы должны иметь доступ к нему из URL-адреса, созданного следующим образом:
http://{bucket-name}.s3.amazonaws.com/<path-to-file>
Теперь скажем, что ваш путь к файлу s3:
s3://test-bucket/test-folder/test-file.txt
Вы должны иметь wget этот файл со следующим URL:
http://test-bucket.s3.amazonaws.com/test-folder/test-file.txt
Ответ 3
Вы можете использовать команду:
wget --no-check-certificate --no-proxy 'http://your_bucket.s3.amazonaws.com/my-file.jpg'
Ответ 4
AWS cli имеет команду "presign", которую можно использовать для получения временного общедоступного URL-адреса для частного ресурса s3.
aws s3 presign s3://private_resource
Затем вы можете использовать wget для загрузки ресурса с использованием назначенного URL-адреса.
Ответ 5
Если у вас нет доступа для установки клиента AWS на вашем компьютере с Linux, попробуйте следующий метод.
Спасибо
Ответ 6
У меня была та же ошибка, и я решил ее, добавив правило входящих групп безопасности:
HTTPS введите в порту 443 мой IP-адрес (поскольку я единственный, кто обращается к нему) для подсети, в которой находился мой экземпляр.
Надеюсь, это поможет всем, кто забыл включить это