Как показать изображение с моего Amazon S3 на моем веб-сайте?

У меня есть фотографии на Amazon S3. Изображения являются частными и не общедоступными, поэтому я не могу показать им прямую ссылку s3.amazonaws/bucket_name/key_name/image_name.jpg

Я знаю имена изображений на Amazon S3. Как показать, например, изображения Amazon S3 flower.png и house.png на моем сайте с помощью PHP?

Если вы не хотите публиковать свой файл, вот процедура.

  1. убедитесь, что ваш ведро S3 является закрытым. Разрешены только авторизованные и авторизированные вызовы

  2. на стороне сервера, при рендеринге страницы, генерировать ссылки на объект S3, который включает подпись. Подпись будет вычислена из вашего доступа и секретного ключа и сообщит S3, что вызов должен быть разрешен

S3 Подписанный URL-адрес легко сгенерирован из нашего SDK. Для PHP просто проверьте документ на странице http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-s3.html#creating-a-pre-signed-url

  1. на веб-странице, когда пользователь нажимает на подписанный URL-адрес, браузер будет перенаправлен на S3. S3 проверит подпись и – когда правильно – получит объект

Самое простое – сделать их общедоступными в s3, по крайней мере, только для чтения.

Если вы не хотите, чтобы они были общедоступными на s3, по какой-то причине вы могли бы добавить облачный дистрибутив, который будет обслуживать изображения из вашего ведра s3, и вы можете предоставить облачный доступ к файлам, не делая изображения общедоступными в s3 ,

Эта ссылка показывает вам, как это сделать:

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html