Я пытаюсь удалить и весь каталог с любыми предыдущими папками или содержимым. Я могу удалить загрузку, создание и удаление отдельных файлов, но получаю ошибки при удалении главной папки:
Папки начинаются с 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)
Первый вариант: 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
значение сделает работу.
Других решений пока нет …