Amazon S3 Access изображение по URL - PullRequest
22 голосов
/ 08 августа 2011

Я загрузил изображение в хранилище Amazon S3. Но как я могу получить доступ к этому изображению по URL? Я сделал папку и файл общедоступными, но все равно получаю ошибку AccessDenied, если пытаюсь получить к ней доступ по URL https://s3.amazonaws.com/bucket/path/image.png

Ответы [ 9 ]

26 голосов
/ 20 ноября 2014

Это старый вопрос, но для всех, кто сталкивался с этим вопросом, как только я опубликовал файл, я смог получить доступ к своему изображению как https://mybucket.s3.amazonaws.com/myfolder/afile.jpg

6 голосов
/ 30 мая 2017

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

https://s3.amazonaws.com/bucketname/foldername/imagename.jpg

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

https://s3.amazonaws.com/bucketname/imagename.jpg

upvote, если поможет. Соответствует требованиям AWS от 30 мая 2017 года.

5 голосов
/ 24 января 2015

Похоже, что теперь вы можете просто щелкнуть правой кнопкой мыши по любой папке внутри корзины и выбрать «Сделать общедоступной», чтобы сделать все в этой папке общедоступными. Это может не работать на уровне ведра.

3 голосов
/ 16 января 2017

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

Оказывается, что при обращении к изображениям с % в имени файла должно быть указаноURL-адрес символа %, закодированный в %25.

, т. е. к photo%20of%20a%20banana%20-%2019%20june%202016.jpg необходимо обратиться через photo%2520of%2520a%2520banana%2520-%252019%2520june%25202016.jpg.

Однако URL-кодировка полного пути у нас не сработала, поскольку косые черты и т. д. будут закодированы, а путь не будет работать.В нашем конкретном случае простая замена % на %25 во всех путях доступа имела значение.

3 голосов
/ 18 января 2013

убедитесь, что вы получаете доступ к изображению в том же регистре, в котором оно было загружено и сохранено на S3. например, если вы загрузили имя_изображения. JPG , вам следует использовать то же имя, но не имя_изображения. jpg

1 голос
/ 19 апреля 2016

На вашей консоли щелкните правой кнопкой мыши изображение, к которому вы хотите получить доступ, и нажмите «Сделать общедоступным»;когда это будет сделано, нажмите правой кнопкой мыши на изображение еще раз и нажмите «Свойства» и скопируйте ссылку из расширенного представления.

1 голос
/ 29 июля 2015

У меня была такая же проблема. У меня есть проблема интервал в URL изображения. Я сделал это, чтобы заставить его работать:

String imgUrl=prizes.get(position).getImagePreview().replaceAll("\\s","%20");

Теперь передайте этот URL Пикассо:

Picasso.with(mContext)
            .load(imgUrl)
            .into(mImageView);
0 голосов
/ 10 мая 2019

Чтобы получить доступ к частным изображениям через URL, вы должны предоставить аутентификацию строки запроса. Для аутентификации строки запроса версии 4 требуются параметры X-Amz-Algorithm, X-Amz-Credential, X-Amz-Signature, X-Amz-Date, X-Amz-SignedHeaders и X-Amz-Expires.

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

Одним из самых простых способов является создание политики корзины.

{"Version": "2012-10-17", "Statement": [{"Sid": "MakeItPublic", "Effect":«Разрешить», «Принципал»: «», «Действие»: «s3: GetObject», «Ресурс»: «arn: aws: s3 ::: yourbucketname.com/»}]}

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