我正在尝试为公共图像创建签名 URL是否可以在 URL 上设置权限级别,或者我是否需要在文件上传后进行设置?我试图通过传递一些标题来做到这一点,但我不确定正确的方法。opts := &storage.SignedURLOptions{ GoogleAccessID: googleAccessID, PrivateKey: data, Method: "PUT", Expires: time.Now().Add(time.Hour * 1), ContentType: r.MimeType, Headers: []string{"x-goog-acl"},or maybe Headers: []string{"x-goog-acl:public-read"},}那么客户端也需要设置标头吗?
2 回答

手掌心
TA贡献1942条经验 获得超3个赞
使用签名 URL 的任何人都以签署 URL 的实体的权限行事。假设您创建服务帐户 A 并使用 A 的私钥对 URL 进行签名。当最终用户尝试使用该 URL 获取资源时,GCS 将检查服务帐户 A 是否具有读取权限。

慕码人2483693
TA贡献1860条经验 获得超9个赞
您可以在创建新的存储桶编写器时执行此操作。您可以设置标题并创建 ACLRule。我使用“google.golang.org/cloud/storage”包在我在 Google App Engine 上托管的应用程序中执行此操作。希望这可以帮助。
wc := bucket.Object(filename).NewWriter(ctx)
wc.ContentType = contentType
wc.CacheControl = "public, max-age=86400"
wc.ObjectAttrs.ACL = append(wc.ObjectAttrs.ACL, storage.ACLRule{Role: storage.RoleReader, Entity: storage.AllUsers})
- 2 回答
- 0 关注
- 149 浏览
添加回答
举报
0/150
提交
取消