Closed tantalate closed 3 years ago
腾讯云SDK有提供批量删除的API,但是这里在删除的时候,是迭代调用单个文件删除接口,要删除的文件量比较大时效率很低。
如果你的用法是 Storage::delete(['file.jpg', 'file2.jpg']);
,这个是底层迭代调用的。参见 https://github.com/laravel/framework/blob/8.x/src/Illuminate/Filesystem/FilesystemAdapter.php#L362
但是你可以通过 app('filesystem')->disk('cosv5')->getAdapter()->getCOSClient()
直接调用腾讯云SDK。
下方是个例子。
$adapter = app('filesystem')->disk('cosv5')->getAdapter();
$client = $adapter->getCOSClient();
$client->deleteObjects([
'Bucket' => $adapter->getBucketWithAppId(),
'Objects' => [
['Key' => 'ObjectKey1'],
['Key' => 'ObjectKey2'],
],
]);
了解了,感谢! 不知道S3之类的是不是也是这样,感觉laravel应该加一个批量删除的方法
腾讯云SDK有提供批量删除的API,但是这里在删除的时候,是迭代调用单个文件删除接口,要删除的文件量比较大时效率很低。