@verygoodboy

Почему не работает метод setVisibility с параметром public для Laravel и AWS S3?

Использую Laravel 10 и свежесозданый S3 bucket. Установил пакет
composer require league/flysystem-aws-s3-v3 "^3.0" --with-all-dependencies

Прописал все настройки в .env

Файлы в бакет уходят, но публичными их сделать не могу через доступные Laravel методы.
Я использовал для передачи public метод из документации:
Storage::disk('s3')->setVisibility($fileName, 'public');
Результат:
$visibility = Storage::disk('s3')->getVisibility($fileName);
dd($visibility);
private
В браузере если перейти по урл загруженого на S3 файла: <Code>AccessDenied</Code>


Добавление 'visibility' => 'public', в filesystem.php для s3 также не работает.

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

Есть ли рабочий способ передавать 'public' для конкретных файлов или это уже невозможно?
  • Вопрос задан
  • 44 просмотра
Решения вопроса 1
yesbro
@yesbro
Думаю, помогаю думать
А в настройках самого бакета ты разрешил делать файлы публичными? Насколько я помню там по умолчанию все запрещено. https://websetnet.net/ru/how-to-manage-public-acce...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы