在 laravel 中删除上传到外部磁盘 (DigitalOcean) 的文件
Delete files uploaded in external Disk(DigitalOcean) in laravel
我正在使用 digital ocean(do) 保存文件而不是存储在我的服务器中,现在我可以毫无问题地上传文件,但我需要删除上传的文件,而不仅仅是在数据库中,我一直尝试删除它:
Storage::delete('url/to/file');
unset('url/to/file);
但这行不通。
这是我的代码
$upload = Upload::find($id);
$upload->delete();
Storage::delete($upload->getVideo()); //it doesn't give me any mistakes
//$upload->getVideo(); retun the url
$upload->delete();
要上传文件,我正在使用此代码:
$path = Storage::disk('do')->putFileAs( $order->user->hash, $request->file('file'), bin2hex(random_bytes(24)).'.'.$extencion, 'public');
提供删除功能的路径(与您用于上传的路径相同),以便从您的 Digital Ocean 中删除文件 Space
Storage::disk('digital-ocean')->delete('path/to/file.jpg');
如果任何人只需获取您用于公开提供文件的 URL 即可删除该文件,那将是一个安全问题
来自Docs
正在删除文件
delete
方法接受要从磁盘中删除的单个文件名或文件数组:
use Illuminate\Support\Facades\Storage;
Storage::delete('file.jpg');
Storage::delete(['file.jpg', 'file2.jpg']);
如有必要,您可以指定要从中删除文件的磁盘:
use Illuminate\Support\Facades\Storage;
Storage::disk('s3')->delete('folder_path/file_name.jpg');
我正在使用 digital ocean(do) 保存文件而不是存储在我的服务器中,现在我可以毫无问题地上传文件,但我需要删除上传的文件,而不仅仅是在数据库中,我一直尝试删除它:
Storage::delete('url/to/file');
unset('url/to/file);
但这行不通。
这是我的代码
$upload = Upload::find($id);
$upload->delete();
Storage::delete($upload->getVideo()); //it doesn't give me any mistakes
//$upload->getVideo(); retun the url
$upload->delete();
要上传文件,我正在使用此代码:
$path = Storage::disk('do')->putFileAs( $order->user->hash, $request->file('file'), bin2hex(random_bytes(24)).'.'.$extencion, 'public');
提供删除功能的路径(与您用于上传的路径相同),以便从您的 Digital Ocean 中删除文件 Space
Storage::disk('digital-ocean')->delete('path/to/file.jpg');
如果任何人只需获取您用于公开提供文件的 URL 即可删除该文件,那将是一个安全问题
来自Docs
正在删除文件
delete
方法接受要从磁盘中删除的单个文件名或文件数组:
use Illuminate\Support\Facades\Storage;
Storage::delete('file.jpg');
Storage::delete(['file.jpg', 'file2.jpg']);
如有必要,您可以指定要从中删除文件的磁盘:
use Illuminate\Support\Facades\Storage;
Storage::disk('s3')->delete('folder_path/file_name.jpg');