Получить путь к хранилищу из подписанного URL-адреса Google Storage
Рекомендуется получить общедоступную ссылку на файл Google Storage, используя подписанные URL-адреса.
Мне нужно получить ссылку на хранилище на основе URL-адреса, чтобы при удалении записи из базы данных я также мог удалить ее файлы из хранилища.
Подписанный URL для файла, хранящегося в path/file.jpeg
Кажется, следует шаблону:
https://storage.googleapis.com/bucket.name/path%2Ffile.jpeg?foobar
Так что в настоящее время я использую регулярное выражение, чтобы взять текст между bucket.name
и ?
характер, затем замена %2F
с /
, Я бы хотел знать:
- Это надежно?
- Есть ли API в официальных библиотеках, который делает это для меня? Не смог найти ни одного.
- Есть ли лучший подход? Как хранение пути хранения в записи базы данных вместе с подписанным URL (кажется мне излишним).
1 ответ
Рекомендуемый способ получения общедоступной ссылки на объект облачного хранилища состоит в том, чтобы просто предоставить к нему общий доступ. При этом вы получите URL-адрес в виде storage.googleapis.com/[your-bucket]/[path- в файл] / [файл].
-Это надежно? Подписанные URL-адреса предназначены для использования, когда требуется доступ (чтение, запись или удаление) только в течение ограниченного времени, поэтому использование Подписанного URL-адреса для текущих нужд приложения может оказаться не лучшим подходом, поскольку вы используете regex для получения подходящего пути URL-адреса. но игнорируя весь текст после "?", что требует подписи определенного вычислительного процесса.
-Есть ли API в официальных библиотеках, который делает это для меня? Не смог найти ни одного. Не уверен, что вы имеете в виду извлечение пути из подписанного URL-адреса, если это так, то ответ - нет.
Есть ли лучший подход? Использование разрешения на публичный доступ может быть еще одним вариантом. Если вы используете подписанный URL-адрес, чтобы также иметь разрешения на удаление, но на самом деле не используете функциональность с ограниченным временем, тогда лучше всего использовать публичный доступ к объектам, создать учетную запись службы с достаточными разрешениями (удалить объекты облачного хранилища) и использовать клиентскую библиотеку хранилища. удалить объект из корзины при удалении записи в БД.