Получить путь к хранилищу из подписанного URL-адреса Google Storage - PullRequest
0 голосов
/ 28 мая 2018

Рекомендуемый способ получения общедоступной ссылки на файл Google Storage - использовать Подписанные URL-адреса .

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

Подписанный URL-адрес для файла, хранящегося в path/file.jpeg, выглядит следующим образом:

https://storage.googleapis.com/bucket.name/path%2Ffile.jpeg?foobar

ИтакВ настоящее время я использую регулярное выражение для переноса текста между bucket.name и ?, а затем заменяю %2F на /.Я хотел бы знать:

  • Это надежно?
  • Есть ли какой-либо API в официальных библиотеках, который делает это для меня?Не могу найти.
  • Есть ли лучший подход?Как хранение пути хранения в записи базы данных вместе с подписанным URL (кажется мне излишним).

1 Ответ

0 голосов
/ 02 августа 2018

Рекомендуемый способ получить общедоступную ссылку на объект облачного хранилища - просто разрешить публичный доступ к нему, выполнив это, вы получите URL-адрес в виде storage.googleapis.com/[ваше ведро] / [путь к файлу] / [файл].

-Это надежно?Подписанные URL-адреса предназначены для использования, когда требуется доступ (чтение, запись или удаление) только в течение ограниченного времени, поэтому использование Подписанного URL-адреса для текущих нужд приложения может оказаться не лучшим подходом, поскольку вы используете regex для получения подходящего пути URL-адреса.но игнорируя весь текст после «?», что требует подписи определенного вычислительного процесса.

- Есть ли API в официальных библиотеках, который делает это для меня?Не смог найти ни одного.Не уверен, что вы имеете в виду извлечение пути из подписанного URL-адреса, если это так, то ответ - нет.

- Есть ли лучший подход?Использование разрешения на публичный доступ может быть еще одним вариантом.Если вы используете подписанный URL-адрес, чтобы также иметь разрешения на удаление, но на самом деле не используете функциональность с ограниченным временем, тогда лучше всего использовать публичный доступ к объектам, создать учетную запись службы с достаточными разрешениями (удалить объекты облачного хранилища) и использовать клиентская библиотека хранилища для удаления объекта из корзины при удалении записи в БД.

...