0

我在 Cloud-Storage 中创建了一个存储桶,并授予了 my-gae-app (GAE) 的权限,即 Full_Control。我还在我的存储桶上为 my-gae-app 配置了 CORS(跨域资源共享)。我将存储桶默认 ACL 设置为拥有 my-gae-app。

在 my-gae-app 应用程序中,我有允许用户将 pdf/图像上传到 my-bucket 的表单。(我使用 GCS 客户端库函数)上传过程运行良好,当点击上传按钮时,文件被正确写入我的存储桶,我可以从云存储控制台验证文件是否存在。我检查了文件(对象)权限,我可以看到 my-app-gae 是所有者。

显示这些上传文件的其他表单不起作用。甚至像“<”img src="https://storage.cloud.google.com/mybucket/my-uploaded-image.jpg"/">”这样简单,控制台向我显示“GET ... 403 Forbidden” . 显示 pdf 的页面将显示“访问被拒绝访问被拒绝”。

我试图在云存储控制台中将该对象标记为“公开共享”,然后一切正常。但是,这不是正确的设计。我需要一个解决方案来仅通过 my-gae-app 访问我的存储桶,而不是公开访问 :o(

任何人都可以解释一下吗?非常感激。

4

1 回答 1

1

无论“显示这些上传文件的其他形式”是否需要在具有 READ 或 FULL_CONTROL 权限的对象的访问控制列表中进行身份验证。如果您希望在存储桶中创建的所有对象都是这种情况,最简单的方法是为存储桶设置默认对象访问控制,如下所述:https ://developers.google.com/storage /docs/accesscontrol#default

使用默认对象访问控制集,您可以默认授予 READ 给您的表单;您只需要找出您的表单正在验证的用户/服务帐户/组。

于 2013-09-06T15:54:24.727 回答