Ответ 1
На самом деле он сформулирован скорее как:
https://<bucket-name>.s3.amazonaws.com/<key>
Смотрите здесь
У меня возникли проблемы с поиском доступа к файлу с 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, но я не могу разобраться в этом.
Спасибо.
На самом деле он сформулирован скорее как:
https://<bucket-name>.s3.amazonaws.com/<key>
Смотрите здесь
Возможно, не то, что было после OP, но для тех, кто ищет URL для простого доступа к читаемому объекту на S3, больше похоже на:
https://<region>.amazonaws.com/<bucket-name>/<key>
Где <region>
что-то вроде s3-ap-southeast-2
.
Нажмите на элемент в графическом интерфейсе S3, чтобы получить ссылку для вашего ведра.
Документация здесь, и я буду использовать регион Франкфурта в качестве примера.
Но этот URL-адрес не работает:
Явное сообщение: The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.
Я могу говорить о другой проблеме, потому что я не получаю ошибку NoSuchKey
, но я подозреваю, что сообщение об ошибке стало понятным с течением времени...
Как сказал @stevebot, сделайте так:
https://<bucket-name>.s3.amazonaws.com/<key>
Одна важная вещь, которую я хотел бы добавить, заключается в том, что вы должны либо сделать все ваши объекты корзины общедоступными, либо вы можете добавить собственную политику в свою политику корзины. Эта пользовательская политика может разрешать трафик из диапазона IP-адресов вашей сети или с другими учетными данными.
Обычно это будет https://s3.amazonaws.com/<bucket-name>/<>key
.
Вы также можете найти конкретный URL-адрес для файла, посмотрев, что ваше описание объекта в консоли S3.