我有一个基于 Google Cloud Platform 构建的 Django 项目。我们使用的是 Django 的身份验证系统,并且大多数(几乎所有)用户都没有在 GCP 项目中设置凭据,因此所有文件身份验证都需要基于 Django 而不是 GCP。
我们用于文件存储的后端配置非常基础,并且文件已按预期成功上传到GCS:
DEFAULT_FILE_STORAGE = 'storages.backends.gcloud.GoogleCloudStorage'GS_BUCKET_NAME = 'my-bucket'
生成的文件URL格式为(再次如预期的那样):
https://storage.googleapis.com/my-bucket/my-document.txt
问题是这个存储桶不能公开读取,因为文件具有基于 Django 权限系统中设置的规则的访问控制,每个用户都不同。
如何让Django提供文件而不是由GCS提供文件?
想到的一个想法是让视图从 GCS 加载文件并将它们传递给请求的客户端,但我怀疑这不会很好地处理大文件,因为我需要将整个文件加载到本地内存(坏)或以块的形式加载文件并将它们以这些块的形式写入响应流,但不知道这是否可以在 Django 中完成。
侃侃尔雅
相关分类