Мое бизнес-приложение требует загрузки файла из корзины GCS. Размер файла также может быть в ГБ. Есть ли для скачивания какой-нибудь класс вроде ResumableUpload? Я хочу использовать ResumableDownload, чтобы в случае прерывания загрузки файла можно было начать загрузку остальной части файла.
Согласно документация облачного хранилища Google, используя gsutil
команда:
gsutil автоматически выполняет возобновляемую загрузку всякий раз, когда вы используете команду cp для загрузки объекта, размер которого превышает 8 МБ. Для этого не нужно указывать какие-либо специальные параметры командной строки. [. . .] Точно так же gsutil автоматически выполняет возобновляемые загрузки (используя стандартные операции HTTP Range GET) всякий раз, когда вы используете команду cp, если адресатом не является поток. В этом случае частично загруженный временный файл будет виден в каталоге назначения. По завершении исходный файл удаляется и перезаписывается загруженным содержимым.
Вы можете найти полезную эту документацию на Передача сценария производства.
Методы загрузки GCS (как в XML, так и в JSON API) реализуют Range
заголовок согласно Раздел 3 RFC 7233.
Это означает, что, если вы знаете, сколько байтов вы загрузили, вы можете начать загрузку снова в любой момент.
Кроме того, вы также можете частично загружать файлы. При этом вы даже можете разделить загрузку, а затем составить полный файл.
Пример:
BUCKET=<YOUR_BUCKET_ID>
echo "Hello World!">test.txt
gsutil cp test.txt gs://$BUCKET
curl https://www.googleapis.com/storage/v1/b/$BUCKET/o/test.txt?alt=media -H'Range: bytes=6-10' -H"Authorization: Bearer $(gcloud auth print-access-token)"
Этот пример должен просто вернуть слово World
.
Не уверен, как реализовать это в С #, как упоминалось в комментарии к другому ответу, но GCS поддерживает частичные загрузки. Подробности реализации, которые больше ориентированы на программирование, я предлагаю вам спросить в StackOverflow.