Ошибка при попытке удалить каталог S3 (и его содержимое) в Laravel 5.1

Я пытаюсь удалить и весь каталог с любыми предыдущими папками или содержимым. Я могу удалить загрузку, создание и удаление отдельных файлов, но получаю ошибки при удалении главной папки:

Папки начинаются с Auth::user id, поэтому я надеялся удалить главную папку при удалении пользователя.

Первый вариант: Storage::disk('s3')->deleteDirectory(Auth::id());
Ошибка: «Максимальный уровень вложенности функции« 100 »достигнут, прерывается!»
Зачитать: https://gist.github.com/jackbarham/14fce68b51abe4eaadd2

Второй вариант: Storage::deleteDirectory(Auth::id());
Ошибка: «Вызов функции-члена delete () по целому числу»
Зачитать: https://gist.github.com/jackbarham/32dc6dc6c3d7f1b3c636

Я использую Storage::disk('s3')->delete($path . $filename); для добавления и удаления отдельных файлов без каких-либо проблем.

Я использую AWS SDK V3 (согласно документации Laravel)

1

Решение

(1)

Первый вариант: Storage :: disk (‘s3’) -> deleteDirectory (Auth :: id ()); Ошибка: «Максимальный уровень вложенности функции« 100 »достигнут, прерывается!»

Это сложно, так как проблема не обязательно связана с вашим кодом. Если бы эта ошибка была однажды, и в моем случае на сервере, на котором я вызывал API, возникли проблемы с загрузкой. Вызовы не могут быть эффективно обработаны, поэтому ошибка на моей стороне.

В этом случае вы можете попробовать увеличить xdebug.max_nesting_level в php.ini от 100 в 200 — и повторите попытку. Подробнее о недвижимости Вот.

(2)

Второй вариант: Storage :: deleteDirectory (Auth :: id ()); Ошибка: «Вызов функции-члена delete () по целому числу»

Этот кажется более очевидным. deleteDirectory() принимает строку в качестве первого параметра, в то время как Auth::id() дает вам целое число. Приведите его к правильному типу: (string)Auth::id(),

Во всяком случае, надеюсь, что меняется xdebug.max_nesting_level значение сделает работу.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]