尝试删除Laravel 5.1中的S3目录(和内容)时出错

时间:2015-07-24 19:54:55

标签: php laravel amazon-s3 laravel-5 storage

我正在尝试使用任何前面的文件夹或内容删除整个目录。我可以删除上传,创建和删除单个文件,但在删除主文件夹时会出错:

文件夹以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 个答案:

答案 0 :(得分:1)

<强>(1)

  

第一个选项:存储::磁盘('s3') - &gt; deleteDirectory(Auth :: id());错误:“达到'100'的最大函数嵌套级别,正在中止!”

这个很棘手,因为问题可能不一定是由您的代码引起的。有这个错误一次,在我的情况下托管我正在调用的API的服务器有负载问题。无法有效处理呼叫,因此我的错误。

在这种情况下,您可以尝试将 php.ini 中的xdebug.max_nesting_level100增加到200 - 然后重试。有关该物业的更多信息 here

<强>(2)

  

第二个选项:Storage :: deleteDirectory(Auth :: id());错误:“在整数”

上调用成员函数delete()

这个似乎更明显。 deleteDirectory()将字符串作为第一个参数,而Auth::id()则为整数。将其转换为正确的类型:(string)Auth::id()

无论如何,希望改变xdebug.max_nesting_level值可以完成这项工作。