Как добавить теги при загрузке файлов с помощью Laravel с диска S3? - PullRequest
0 голосов
/ 07 февраля 2019

Как использовать теги S3 при использовании файловой системы S3 (диск S3 или адаптер S3) в Laravel?

Например, при следующей загрузке как тег foo=bar добавляется в загруженный файл?файл?

Storage::disk('s3')->put('file.txt', 'hello', 'private');

1 Ответ

0 голосов
/ 07 февраля 2019

Это заняло некоторое копание, поэтому я хотел документировать его здесь:

Storage::disk('s3')->put('file.txt', 'hello', [
    'Tagging' => 'foo=bar
    'visibility' => 'private',
]);

Вам необходимо добавить атрибут видимости вручную, если вы хотите сохранить то, что было до обновления конфигурации из строки вобъект.

Примечания к объяснению:

  • В Laravel есть адаптер файловой системы, который проверяет строку в конфигурации, если это строка, он оборачивает ее в объект с помощью ключа видимости
  • Этот созданный объект конфигурации передается в систему flys (https://github.com/thephpleague/flysystem)
  • "Tagging" - это синтаксис, который ожидает S3 (https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#putobject - см. Также раздел тегов)
  • Несколько тегов можно сделать с помощью набора URL-запросов dog=good&cat=bad (из документов S3: «Набор тегов должен быть закодирован как параметры URL-запроса»)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...