Совместимость облачного хранилища Google с aws s3 множественной загрузкой - PullRequest
0 голосов
/ 29 апреля 2020

Хорошо, у меня есть рабочие приложения, которые используют amazon s3 multipart, они используют CreateMultipart, UploadPart и CompleteMultiPart.

Теперь мы мигрируем в облачное хранилище Google и у нас есть проблема с multipart. Насколько я понял, Google не поддерживает составную часть s3, здесь можно получить информацию Поддержка облачного хранилища Google для составной загрузки S3 .

Итак, я вижу, что у Google есть ближайший метод Compose https://cloud.google.com/storage/docs/composite-objects, где я просто загружаю разные объекты и затем отправляю запрос на их объединение, или я могу использовать uploadType = multipart https://cloud.google.com/storage/docs/json_api/v1/how-tos/upload#resumable, но это, похоже, полностью отличается от s3 multipart. И есть возобновляемая загрузка https://cloud.google.com/storage/docs/resumable-uploads, которая позволяет загружать файлы порциями, но без полной многочастной.

Какой вариант лучше использовать? Некоторые службы уже используют CreateMultiPart, UploadPart, CompletePart, и мне нужно написать «адаптер» для этих служб, чтобы сделать их совместимыми с облачным хранилищем Google.

1 Ответ

1 голос
/ 29 апреля 2020

Вы правы. Облачное хранилище Google в настоящее время не поддерживает многоэтапную загрузку.

Основными преимуществами многоэтапной загрузки являются возможность параллельной загрузки нескольких потоков с одного или нескольких компьютеров и возможность частичной ошибки загрузки, чтобы не нарушить всю загрузку. Лучший способ получить те же преимущества с помощью GCS - это загрузить части как отдельные объекты, а затем с помощью Compose объединить их в конечный объект. Действительно, это именно то, что делает утилита командной строки gsutil при параллельной загрузке.

Возобновляемая загрузка - отличный инструмент, если вы хотите выгрузить один объект в один поток по порядку, и вы хотите, чтобы возможность возобновления, если соединение потеряно.

«uploadtype = multipart» загрузки немного отличаются. Они позволяют указывать полные метаданные объекта, а также его данные в одной операции загрузки с использованием многокомпонентного HTTP-запроса.

...