使用Django存储包上传图像到GCS时访问被拒绝

mzaanser  于 2022-12-30  发布在  Go
关注(0)|答案(1)|浏览(130)

GCS上的图片上传在本地工作正常。在使用负载平衡器将Django项目部署到虚拟机示例后,设置ssl和域名时出现拒绝访问错误。

Forbidden at /admin/products/banner/add/
403 POST https://storage.googleapis.com/upload/storage/v1/b/new_zourie_app/o?uploadType=multipart: {
  "error": {
    "code": 403,
    "message": "Access denied.",
    "errors": [
      {
        "message": "Access denied.",
        "domain": "global",
        "reason": "forbidden"
      }
    ]
  }
}
: ('Request failed with status code', 403, 'Expected one of', <HTTPStatus.OK: 200>)

我已经添加了多个权限(如allUsers,存储管理员,存储对象创建者,存储对象管理员),以该桶在谷歌云平台文档中给出。还更新了桶和桶键在本地以及虚拟机示例。因此,它的工作在本地,但不能在生产已上传到gcp。

rqqzpn5f

rqqzpn5f1#

这是因为默认情况下,VM示例服务帐户对存储桶具有只读访问范围。您必须通过以下步骤将范围更改为读写。
1.停止部署django代码的VM。
1.打开虚拟机示例页面,然后单击虚拟机上的“编辑
1.转到服务帐户并在下面进行更改,并将存储范围设置为读写。这将解决您的问题enter image description here

相关问题