S3 Flysystem возвращает ключ файла, но метод size выдает «Not Found» - PullRequest
0 голосов
/ 30 августа 2018

Я могу получить и вывести список файлов для определенного ключа / каталога в S3, используя методы хранения league \ flysystem:

$s3 = \Storage::disk('s3');
$files = $s3->files($cp->s3DirectoryPrefix);

возвращается:

array( 0 => "content_properties/503a3468-d660-44f8-9edd-f10cd812f346/submaster_primary.mp4")

Однако, когда я пытаюсь получить размер возвращаемого файла, возникает исключение.

$size = $s3->size($files[0]);
League \ Flysystem \ FileNotFoundException
File not found at path: content_properties/503a3468-d660-44f8-9edd-f10cd812f346/submaster_primary.mp4

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

Есть идеи, что я делаю не так? Какой-то определенный параметр на ведре?

Доступ к объекту через CLI с теми же учетными данными работает просто отлично:

aws s3api head-object --bucket content-data-app-private --key content_properties/503a3468-d660-44f8-9edd-f10cd812f346/submaster_primary.mp4

aws s3api get-object --bucket content-data-app-private --key content_properties/503a3468-d660-44f8-9edd-f10cd812f346/submaster_primary.mp4 ~/Downloads/submaster_primary.mp4

Они возвращают правильную информацию / контент. Так что же происходит в Flysystem, где она может получить список файлов, но не методы самого файла / объекта?

1 Ответ

0 голосов
/ 31 августа 2018

я не знаю, работает ли это на s3, поэтому вы можете попробовать

    $datas = collect(Storage::disk('s3')->files($cp->s3DirectoryPrefix))
                        ->mapWithKeys(function($file) {
                            return [$file => Storage::disk('s3')->size($file)];
                        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...