如何为 Google 存储创建文件大小有限的签名 URL?

我正在尝试创建一个签名的上传 URL,以便客户端可以将文件直接上传到 Google 存储桶,并且我想防止用户上传大文件。因此,我想定义可以通过官方 Go SDK 通过签名 URL 上传的最大文件大小。不幸的是,我找不到任何例子。这可能吗?您如何将文件大小限制为 1mb?



BIG阳
浏览 134回答 2
2回答

慕妹3146593

您正在寻找storage.GenerateSignedPostPolicyV4,它允许您通过PostPolicyV4Options https://cloud.google.com/storage/docs/authentication/signatures#policy-document设置策略文档storage.GenerateSignedPostPolicyV4("my-bucket", "my-object.txt", &storage.PostPolicyV4Options{&nbsp; &nbsp; &nbsp; &nbsp; Conditions: []storage.PostPolicyV4Condition{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; storage.ConditionContentLengthRange(0, 1<<20),&nbsp; &nbsp; &nbsp; &nbsp; },})

弑天下

策略文档可让您更好地控制上传到 Cloud Storage 的对象,通过此功能,您可以控制每次上传必须满足的一系列条件。由于您需要控制需要上传的对象的大小,我建议您看一下这里指出的这个示例:{"expiration":&nbsp;"2020-06-16T11:11:11Z",&nbsp;"conditions":&nbsp;[ &nbsp;&nbsp;["starts-with",&nbsp;"$key",&nbsp;""], &nbsp;&nbsp;{"bucket":&nbsp;"travel-maps"}, &nbsp;&nbsp;{"success_action_redirect":&nbsp;"http://www.example.com/success_notification.html"}, &nbsp;&nbsp;["eq",&nbsp;"$Content-Type",&nbsp;"image/jpeg"], &nbsp;&nbsp;["content-length-range",&nbsp;0,&nbsp;1000000], &nbsp;&nbsp;{"x-goog-algorithm":&nbsp;"GOOG4-RSA-SHA256"}, &nbsp;&nbsp;{"x-goog-credential":&nbsp;"example_account@example_project.iam.gserviceaccount.com/20191102/auto/storage/goog4_request"}, &nbsp;&nbsp;{"x-goog-date":&nbsp;"20191102T043530Z"} &nbsp;&nbsp;]}如您所见,字段“content-length-range”, 0, 1000000] 不允许大于 1Mb 的文档。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go