Невозможно загрузить приватный файл в корзину / папку s3 с Laravel - PullRequest
0 голосов
/ 03 марта 2020

В моем проекте Laravel есть следующий код:

$filename = 'bagel-corp-nda.pdf';

Storage::disk('s3')->put('agreements/'.$filename, file_get_contents($filename),'private');

Когда я запускаю этот код, любой может go перейти по ссылке https://confidential-agreements.s3.ca-central-1.amazonaws.com/agreements/bagel-corp-nda.pdf и просмотреть загруженный PDF-файл. Аргумент 'private' не делает мою загрузку неопубликованной c.

Что я делаю не так?

1 Ответ

0 голосов
/ 04 марта 2020

Похоже, что видимость на самом деле является частной по умолчанию в соответствии с веткой форума .

По умолчанию все объекты являются частными: только владелец имеет полный контроль. При добавлении нового объекта вы можете предоставить разрешения отдельным AWS учетным записям или предопределенным группам Amazon S3.

Приведенная выше цитата взята из Документация Amazon S3 API , которая поддерживает этот форум thread.

, поэтому попробуйте просто вызвать его без третьего параметра, например, так:

Storage::disk('s3')->put('agreements/'.$filename, file_get_contents($filename))

и убедитесь, что в конфигурации диска s3 нет 'visibility' => 'public'

Если он все еще не работает, вы можете попробовать следовать документации API и использовать

// Untested
Storage::disk('s3')->put('agreements/'.$filename, file_get_contents($filename), ['x-amz-acl' => 'private'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...