Laravel 无法使用 Storage::('s3')->delete($files) 删除远程 url 中的文件;但可以在使用 aws 命令时删除
Laravel cant delete file in remote url using Storage::('s3')->delete($files); but can delete when using aws command
我想像这样删除我 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);
}
}
但是当我尝试在我的 bash 中使用此命令删除时,它完美无缺
aws --endpoint-url http://minio:9100 s3 rm s3://myapp/1/ImNkE0wwrstgSpzFyruw8.jpeg
delete: s3://myapp/1/ImNkE0wwrstgSpzFyruw8.jpeg
我的aws配置列表和我的项目配置完全一样!
我可以使用存储来上传文件,但是当我尝试删除文件时它不起作用:
// Working
Storage::disk('s3')->put('1/ImNkE0wwrstgSpzFyruw8.jpeg', $file);
我是不是做错了什么?有没有办法使用 laravel 删除这些文件??
https://docs.min.io/docs/aws-cli-with-minio
https://readouble.com/laravel/5.4/en/filesystem.html
I think the problem is file path. Try to run as mentioned below.
Storage::disk('s3')->delete('myapp/1/ImNkE0wwrstgSpzFyruw8.jpeg');
你可以这样操作
$file_name='your_file_path';
unlink(storage_path($file_name));
我正在解决这个解析 url,像这样:
$file_path = parse_url($file_url);
//return $file_path['path'];
Storage::disk('s3')->delete($file_path);
对我有用。
在您的存储桶中,文件有一个密钥,需要从您的 php 函数中删除文件。得到这个对象 url 被解析。
您添加了错误的文件path.In为了从 s3 存储桶中删除图像您不需要提供图像的完整路径,只需添加图像的根路径。
删除多张图片
$files = [
'myapp/1/ImNkE0wwrstgSpzFyruw8.jpeg',
'myapp/1/YFrdE0sarsAcpfFyrifd2.jpeg'
];
Storage::disk('s3')->delete($files);
删除单张图片
$file = 'myapp/1/ImNkE0wwrstgSpzFyruw8.jpeg';
Storage::disk('s3')->delete($file);
我想像这样删除我 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);
}
}
但是当我尝试在我的 bash 中使用此命令删除时,它完美无缺
aws --endpoint-url http://minio:9100 s3 rm s3://myapp/1/ImNkE0wwrstgSpzFyruw8.jpeg
delete: s3://myapp/1/ImNkE0wwrstgSpzFyruw8.jpeg
我的aws配置列表和我的项目配置完全一样! 我可以使用存储来上传文件,但是当我尝试删除文件时它不起作用:
// Working
Storage::disk('s3')->put('1/ImNkE0wwrstgSpzFyruw8.jpeg', $file);
我是不是做错了什么?有没有办法使用 laravel 删除这些文件??
https://docs.min.io/docs/aws-cli-with-minio https://readouble.com/laravel/5.4/en/filesystem.html
I think the problem is file path. Try to run as mentioned below.
Storage::disk('s3')->delete('myapp/1/ImNkE0wwrstgSpzFyruw8.jpeg');
你可以这样操作
$file_name='your_file_path';
unlink(storage_path($file_name));
我正在解决这个解析 url,像这样:
$file_path = parse_url($file_url);
//return $file_path['path'];
Storage::disk('s3')->delete($file_path);
对我有用。 在您的存储桶中,文件有一个密钥,需要从您的 php 函数中删除文件。得到这个对象 url 被解析。
您添加了错误的文件path.In为了从 s3 存储桶中删除图像您不需要提供图像的完整路径,只需添加图像的根路径。
删除多张图片
$files = [
'myapp/1/ImNkE0wwrstgSpzFyruw8.jpeg',
'myapp/1/YFrdE0sarsAcpfFyrifd2.jpeg'
];
Storage::disk('s3')->delete($files);
删除单张图片
$file = 'myapp/1/ImNkE0wwrstgSpzFyruw8.jpeg';
Storage::disk('s3')->delete($file);