Подтвердить что ты не робот

Url, чтобы получить файл от Amazon S3

У меня возникли проблемы с поиском доступа к файлу с Amazon S3. Допустим, что ведро, в котором находится файл, - BUCKET_NAME, файл FILE_NAME и т.д. Я пробовал следующие два URL:

https://s3.amazonaws.com/BUCKET_NAME/FILE_NAME/
?Expires=EXPIRATION
&Signature=SIGNATURE
&SignatureVersion=2
&SignatureMethod=HmacSHA1
&AWSAccessKeyId=KEYID

Но это дает мне следующую ошибку: <Код > NoSuchKeyКод > Указанный ключ не существует.

и я также попробовал

https://s3.amazonaws.com/BUCKET_NAME/
?Key=FILE_NAME
&Expires=EXPIRATION
&Signature=SIGNATURE
&SignatureVersion=2
&SignatureMethod=HmacSHA1
&AWSAccessKeyId=KEYID

но это возвращает веб-страницу со списком всех файлов в указанном ковше (включая FILE_NAME) вместо конкретного файла, который я хочу. Я также пытался бросить "Action = GetObject" в URL-адрес, но это, похоже, ничего не меняет.

Было бы полезно узнать, какой (если есть) правильный метод и что я делаю неправильно. Некоторое время я копался через документацию amazon, но я не могу разобраться в этом.

Спасибо.

4b9b3361

Ответ 1

На самом деле он сформулирован скорее как:

https://<bucket-name>.s3.amazonaws.com/<key>

Смотрите здесь

Ответ 2

Возможно, не то, что было после OP, но для тех, кто ищет URL для простого доступа к читаемому объекту на S3, больше похоже на:

https://<region>.amazonaws.com/<bucket-name>/<key>

Где <region> что-то вроде s3-ap-southeast-2.

Нажмите на элемент в графическом интерфейсе S3, чтобы получить ссылку для вашего ведра.

Ответ 3

Документация здесь, и я буду использовать регион Франкфурта в качестве примера.

2 разных стиля URL:

Но этот URL-адрес не работает:

Явное сообщение: The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.

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

Ответ 4

Как сказал @stevebot, сделайте так:

https://<bucket-name>.s3.amazonaws.com/<key>

Одна важная вещь, которую я хотел бы добавить, заключается в том, что вы должны либо сделать все ваши объекты корзины общедоступными, либо вы можете добавить собственную политику в свою политику корзины. Эта пользовательская политика может разрешать трафик из диапазона IP-адресов вашей сети или с другими учетными данными.

Ответ 5

Обычно это будет https://s3.amazonaws.com/<bucket-name>/<>key.

Вы также можете найти конкретный URL-адрес для файла, посмотрев, что ваше описание объекта в консоли S3.