如何在谷歌云存储上上传多个文件,例如批量插入

时间:2019-01-07 19:33:28

标签: php laravel google-cloud-platform google-cloud-storage

我有以下情况。我正在使用laravel和Google Cloud Storage,因此基本上,我将自己的自定义文件系统附加到Google Cloud Storage。我的代码看起来像这样-

try{
    $disk = Storage::disk('gcs');

                $disk->put('/service_provider/transports/tech_passports', $file1);
                $disk->put('/service_provider/transports/tech_passports', $file2);

                $disk->put('/service_provider/transports/pictures', $file3);
                $disk->put('/service_provider/transports/pictures', $file4);
                $disk->put('/service_provider/transports/pictures', $file5);
                $disk->put('/service_provider/transports/pictures', $file6);
    } catch(\Exception $e){

}

现在我很担心。如果前三个文件上传而第四个文件有错误怎么办。所以它会赶上块,最后,只有3个文件将被上传,这不是我所需要的。

我需要的是像原子性一样全部上传或没有文件上传。我该如何实现?

1 个答案:

答案 0 :(得分:0)

为确保所有文件都已上传,请尝试对每个文件使用resumable uploads,并执行以下步骤:

启动上传>过程响应>上传文件>检查上传状态>过程响应>恢复上传

重试最后三个步骤,以根据需要恢复多次上传或实施另一种解决方案(例如:删除所有已上传的文件)。

您还可以通过StackOverflow上的另一个问题检查Google Cloud Storage API PHP resumable behavior in the example

请注意,Cloud SDK utility Gsutil中也实现了可恢复的上传。可以用于Synchronize content of two buckets /目录。