在Vue中提供来自谷歌云存储的用户图像



以下是我的项目的一些背景信息:

  • Django后端API与Django Rest Framework进行通信
  • VueJS前端(SPA(与Vuetify
  • 用户使用用户名和密码进行身份验证,我使用JWT对api请求进行身份验证(python-lib是djangorestframework-simplejwt(
  • 我计划在同一个谷歌应用引擎上托管前端和API
  • 该应用程序有一个照片库。用户只能看到自己的照片

现在我不知道如何提供照片。。。我想谷歌云存储是最好的选择。

选项1最初,我认为用后端检索照片会更简单,因为它可以简单地通过服务帐户向云存储进行身份验证。但我想通过序列化程序将照片从后端传递到前端会非常慢。可能有几百张照片。

选项2只将url发送到前端(只发送当前用户的url(可能效率高得多。然后,前端获得图像(例如<v-img :src={{ photo.url }}>(。问题是客户端需要向谷歌进行身份验证才能对云存储进行读取访问。在这一点上,我迷失了方向。

  • 我应该使用签名的url吗
  • 我应该使用OAuth 2.0对客户端进行存储身份验证吗。但据我所知,这意味着用户必须拥有谷歌账户并同意条款等
  • 我可以拥有对象级别的权限吗?还是一定是bucket级别的权限

感谢您提供的任何见解!

阅读您的用例,我会建议使用签名URL。

根据官方文件:

A signed URL is a URL that provides limited permission and time to make a request.
Signed URLs contain authentication information in their query string, allowing users without credentials to perform specific actions on a resource

已签名的URL

最新更新