以下是我的项目的一些背景信息:
- 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