Допустим, у меня есть сценарий использования, когда пользователи могут покупать mp3-файлы внутри приложения. Объекты хранятся в облачном хранилище GCP. Как лучше всего доставлять эти объекты только тем пользователям, которые приобрели файлы?
После изучения темы я предложил три решения:
- Клиент вызывает службу REST (например, работающую в App Engine). Эта служба загружает файлы из облачного хранилища и затем отправляет их обратно клиенту.
- Вместо отправки файлов через вызов REST я мог бы отправить клиенту URL-адрес загрузки (из облачного хранилища). Это было бы более экономически эффективным, однако для меня это звучит как проблема безопасности, поскольку любой, кто просто следит за своей сетью, может перехватить URL.
- Создание (ограниченного по времени) URL-адреса со знаком, чтобы пользователь мог загрузить
Очевидно, что сначала должна произойти проверка прав доступа, например, база данных, которая содержит, если пользователь X купил mp3 Y.
Эта проблема также может быть применена к хранилищу BLOB-объектов Azure или AWS S3. ..