Как загрузить несколько файлов, таких как массовая вставка в облачное хранилище Google - PullRequest
0 голосов
/ 07 января 2019

У меня следующая ситуация. Я использую облачное хранилище laravel и google, поэтому в основном у меня есть собственная файловая система, подключенная к облачному хранилищу google. Мой код выглядит так -

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 голосов
/ 28 марта 2019

Чтобы убедиться, что все ваши файлы загружены, попробуйте использовать возобновляемые загрузки для каждого из ваших файлов, выполнив следующие шаги:

Инициировать загрузку> Процесс ответа> Загрузить файл> Проверить статус загрузки> Процесс ответа> Возобновить загрузку

Повторите последние три шага, чтобы возобновить загрузку столько раз, сколько необходимо, или внедрите другое решение (например: удалите все загруженные файлы), если это то, что вам нужно в вашем приложении.

Вы также можете проверить возобновляемое поведение PHP API Google Cloud Storage в примере из другого вопроса о StackOverflow.

Обратите внимание, что также в утилите Cloud SDK Gsutil реализована возобновляемая загрузка. Его можно использовать для синхронизации содержимого двух сегментов / каталогов.


...