猿问

谷歌存储签名网址公开阅读

我正在尝试为公共图像创建签名 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"},


}

那么客户端也需要设置标头吗?


MMMHUHU
浏览 150回答 2
2回答

手掌心

使用签名 URL 的任何人都以签署 URL 的实体的权限行事。假设您创建服务帐户 A 并使用 A 的私钥对 URL 进行签名。当最终用户尝试使用该 URL 获取资源时,GCS 将检查服务帐户 A 是否具有读取权限。

慕码人2483693

您可以在创建新的存储桶编写器时执行此操作。您可以设置标题并创建 ACLRule。我使用“google.golang.org/cloud/storage”包在我在 Google App Engine 上托管的应用程序中执行此操作。希望这可以帮助。wc := bucket.Object(filename).NewWriter(ctx)wc.ContentType = contentTypewc.CacheControl = "public, max-age=86400"wc.ObjectAttrs.ACL = append(wc.ObjectAttrs.ACL, storage.ACLRule{Role: storage.RoleReader, Entity: storage.AllUsers})
随时随地看视频慕课网APP

相关分类

Go
我要回答