Ric*_*nho 1 php amazon-web-services laravel minio
我想像这样删除我的 Laravel 中的这些文件。但它不起作用!!
use Storage;
class SomeController extends Controller
{
public function delete()
{
$filesToDelete = [
'http://minio:9100/minio/myapp/1/ImNkE0wwrstgSpzFyruw8.jpeg',
'http://minio:9100/minio/myapp/1/YFrdE0sarsAcpfFyrifd2.jpeg'
];
// cant delete using this
Storage::disk('s3')->delete($filesToDelete);
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在我的 bash 中使用此命令删除时,它运行良好
aws --endpoint-url http://minio:9100 s3 rm s3://myapp/1/ImNkE0wwrstgSpzFyruw8.jpeg
delete: s3://myapp/1/ImNkE0wwrstgSpzFyruw8.jpeg
Run Code Online (Sandbox Code Playgroud)
我的 aws 配置列表在我的项目配置中完全相同!我可以使用 Storage 上传文件,但是当我尝试删除文件时它不起作用:
// Working
Storage::disk('s3')->put('1/ImNkE0wwrstgSpzFyruw8.jpeg', $file);
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?无论如何使用laravel删除这些文件?
https://docs.min.io/docs/aws-cli-with-minio https://readouble.com/laravel/5.4/en/filesystem.html
小智 6
我解决了这个解析网址,如下所示:
$file_path = parse_url($file_url);
//return $file_path['path'];
Storage::disk('s3')->delete($file_path);
Run Code Online (Sandbox Code Playgroud)
这个对我有用。在您的存储桶中,文件有一个密钥,需要从您的 php 函数中删除文件。为了得到这个对象 url 被解析。
小智 5
我认为问题是文件路径。尝试按照下面提到的方式运行。
Storage::disk('s3')->delete('myapp/1/ImNkE0wwrstgSpzFyruw8.jpeg');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3543 次 |
| 最近记录: |