Можно ли возобновить загрузку с подписанным URL-адресом в облачном хранилище Google?
Используя Google Cloud Storage, я хотел бы передать клиенту необходимую информацию для возобновляемой загрузки. Это возможно?
2 ответа
Да, это возможно.
С сервером, прошедшим проверку подлинности в службе облачного хранилища, и клиентом, которому он хочет предоставить доступ, типичный рабочий процесс загрузки подписанных URL выглядит следующим образом:
- Клиент запрашивает подпись, чтобы он мог сделать PUT
- Ваш сервер создает и возвращает подписанный
URL
используя метод, описанный здесь - Клиент делает PUT с возвращенным
URL
Возобновляемый рабочий процесс выглядит так:
- Клиент запрашивает подпись, чтобы он мог сделать PUT
- Ваш сервер создает и возвращает подписанный
URL
используя метод, описанный здесь - Ваш сервер отправляет запрос POST для возобновления загрузки, как описано здесь
- Ваш сервер возвращает оба
URL
иUpload ID
клиенту - Клиент делает один или несколько PUT, используя предоставленные
URL
а такжеUpload ID
Я только что нашел эту заметку на документах здесь:
Примечание. Если ваши пользователи загружают (записывают) только ресурсы в корзину с контролируемым доступом, вы можете использовать функцию возобновляемой загрузки в облачном хранилище Google, избегая подписи URL-адресов или использования учетной записи Google. В сценарии возобновляемой загрузки ваш (серверный) код проверяет подлинность и инициирует загрузку в Google Cloud Storage без фактической загрузки каких-либо данных. Запрос инициализации возвращает идентификатор загрузки, который затем можно использовать в запросе клиента для загрузки данных. Запрос клиента не должен быть подписан, потому что идентификатор загрузки, по сути, действует как маркер аутентификации. Если вы выберете этот путь, обязательно передайте идентификатор загрузки по HTTPS.
Так что в принципе вам не нужен подписанный URL. Идентификатор загрузки будет достаточно. Процедура будет следующей:
- Клиент запрашивает загрузку, чтобы он мог сделать PUT
- Ваш сервер отправляет запрос POST для возобновления загрузки.
- Ваш сервер возвращает идентификатор загрузки клиенту.
- Клиент делает PUT, чтобы загрузить файл, используя предоставленный идентификатор загрузки.