我正在嘗試創建一個簽名的上傳 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 關注
- 160 瀏覽
添加回答
舉報
0/150
提交
取消