我正在尝试创建一个签名的上传 URL,以便客户端可以将文件直接上传到 Google 存储桶,并且我想防止用户上传大文件。因此,我想定义可以通过官方 Go SDK 通过签名 URL 上传的最大文件大小。不幸的是,我找不到任何例子。这可能吗?您如何将文件大小限制为 1mb?
2 回答
慕妹3146593
TA贡献1820条经验 获得超9个赞
您正在寻找storage.GenerateSignedPostPolicyV4,它允许您通过PostPolicyV4Options https://cloud.google.com/storage/docs/authentication/signatures#policy-document设置策略文档
storage.GenerateSignedPostPolicyV4("my-bucket", "my-object.txt", &storage.PostPolicyV4Options{
Conditions: []storage.PostPolicyV4Condition{
storage.ConditionContentLengthRange(0, 1<<20),
},
})
弑天下
TA贡献1818条经验 获得超8个赞
策略文档可让您更好地控制上传到 Cloud Storage 的对象,通过此功能,您可以控制每次上传必须满足的一系列条件。
由于您需要控制需要上传的对象的大小,我建议您看一下这里指出的这个示例:
{"expiration": "2020-06-16T11:11:11Z", "conditions": [ ["starts-with", "$key", ""], {"bucket": "travel-maps"}, {"success_action_redirect": "http://www.example.com/success_notification.html"}, ["eq", "$Content-Type", "image/jpeg"], ["content-length-range", 0, 1000000], {"x-goog-algorithm": "GOOG4-RSA-SHA256"}, {"x-goog-credential": "example_account@example_project.iam.gserviceaccount.com/20191102/auto/storage/goog4_request"}, {"x-goog-date": "20191102T043530Z"} ]}
如您所见,字段“content-length-range”, 0, 1000000] 不允许大于 1Mb 的文档。
- 2 回答
- 0 关注
- 133 浏览
添加回答
举报
0/150
提交
取消