Таким образом, в Google Storage есть отличный API для возобновляемых загрузок: https://cloud.google.com/storage/docs/json_api/v1/how-tos/resumable-upload, который я хотел бы использовать для загрузки большого объекта несколькими кусками. Однако это делается в конвейере обработки потока, где общее количество байтов в потоке заранее неизвестно.
Согласно документации API, вы должны использовать заголовок Content-Range
, чтобы сообщитьAPI хранения Google, с которым вы закончили загрузку файла, например:
PUT https://www.googleapis.com/upload/storage/v1/b/myBucket/o?uploadType=resumable&upload_id=xa298sd_sdlkj2 HTTP/1.1
Content-Length: 1024
Content-Range: bytes 1023-2048/2048
[BYTES 1023-2048]
Если я правильно понимаю, как это работает правильно, то значение bytes 1023-2048/2048
заголовка Content-Range
определяет способ хранения Google Storage. что вы загружаете последний кусок данных, и он может успешно завершить возобновляемый сеанс загрузки после того, как это будет сделано.
В моем случае общий размер потока заранее неизвестен, поэтому мне нужно продолжать загрузку до тех пор, пока не останется больше данных для загрузки . Есть ли способ сделать это с помощью Google Storage API? В идеале я хотел бы, чтобы какой-нибудь способ вручную сказать API «эй, я закончил, не ожидайте больше данных от меня».