Отображение загруженных на s3 изображений в веб-интерфейсе - безопасность - PullRequest
0 голосов
/ 22 января 2020

Я загружаю изображения в s3, сохраняю абсолютные URL-адреса в своей базе данных, а затем отображаю их в моем интерфейсе. Я вижу две проблемы - во-первых, мне нужно пометить их как publi c при загрузке:

$path = $image->storeAs('folder', md5('file_name.jpg'), ['disk' => 's3']);
Storage::disk('s3')->setVisibility($path, 'public');
$url = Storage::disk('s3')->url($path);

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

<img src="https://bucket-name-staging.s3.eu-central-1.amazonaws.com/folder/84b4b3j4j34j12j3123h21jh321k312312.jpg">

Это также иногда делает его заблокированным adblock. Это рекомендуемый способ сделать это? Могу ли я отображать изображения на веб-сайте, если они находятся в ведре s3? (Я попробовал - но это 403 ответ).

Ответы [ 2 ]

0 голосов
/ 22 января 2020

Если вы используете чистый код HTML для показа изображений s3 на своем веб-сайте, нет другого способа пометить их как publi c, но в этом случае эти файлы будут доступны всем людям во всем мире и они могут показывать ваши изображения, и вам обязательно нужно будет платить или использовать подписанный URL, но вы используете PHP, вы можете попробовать this

0 голосов
/ 22 января 2020

Что касается первого вопроса, пожалуйста, проверьте следующие подходы, упомянутые здесь:

Что касается второй проблемы, проверьте:

  • Маршрут 53
  • CloudFront (необходим, если вы нравится загружать файлы по https)
...