Использовать мое собственное доменное имя для доступа к объектам Amazon S3 - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть хранилище для опубликованных c изображений в корзине S3. Любой может получить ссылку publi c на изображение с моего сайта и использовать его на своих сайтах. Дело в том, что ссылка выглядит следующим образом:

https://my-bucket-name.production.s3.eu-central-1.amazonaws.com/images/samplename.png

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

Идеальная ситуация - перенаправить на ссылку s3 publi c после доступа к этому:

https://mywebsite.com/awsstatic/images/samplename.png

Итак, сервер проверяет, есть ли awsstatic в URL, и перенаправляет на ресурс S3, чтобы показать изображение.

Теперь я мог видеть запись конечной точки REST для этого с загрузкой файла, но затем каждый раз, когда кто-то будет попробуйте получить доступ к изображению, мой сервер должен будет буферизовать все изображение. Он также получит ненужный дополнительный трафик c.

Каков правильный процесс для этого?

Ответы [ 3 ]

0 голосов
/ 24 апреля 2020

Вы можете Настроить веб-сайт c, используя собственный домен, зарегистрированный по маршруту 53 .

. Это даст вам URL-адрес:

http://images.example.com/samplename.png

Обратите внимание, что имя корзины должно соответствовать URL-адресу, и оно не будет работать для HTTPS.

0 голосов
/ 29 апреля 2020

Используйте CloudFront и альтернативное доменное имя. Вы также можете воспользоваться преимуществами кэширования местоположения на краю, если используете этот подход.

0 голосов
/ 23 апреля 2020

Вы можете использовать:

Route::get('/awsstatic/images/{image}', function($image){
     $url = 'https://my-bucket-name.production.s3.eu-central-1.amazonaws.com/images/' . $image;
     return Redirect::away($url)
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...