Когда объекты являются частными в Amazon S3, они не могут быть доступны по «анонимному» URL. Это то, что делает их частными.
Доступ к объектам можно получить с помощью вызова API AWS из вашего приложения, если учетные данные IAM, связанные с приложением, имеют разрешение на доступ к объекту.
Если вы хотите sh сделать объект доступным через URL-адрес в веб-браузере (например, в качестве URL-адреса страницы или при ссылке в теге, таком как <img>
), то вам нужно будет создать Amazon S3 pre -подписанные URL-адреса , которые предоставляют ограниченный по времени доступ к частному объекту. URL включает информацию об авторизации.
Хотя я не знаю Laravel, может показаться, что ваш первый пример кода просто предоставляет нормальный «анонимный» URL-адрес для объекта в Amazon S3 и поэтому (правильно не удается Ваш второй пример кода, очевидно, генерирует предварительно подписанный URL, который будет работать в течение заданного периода времени. Это правильный способ создания URL, который вы можете использовать в браузере.