【发布时间】:2020-08-04 21:00:13
【问题描述】:
我想创建一个预签名的上传 url,使客户端能够将文件直接上传到存储桶。 url 应该在五分钟后超过,防止上传大于 1mb 的文件,只允许上传 .jpg 和 .png 文件。除了文件类型限制外,我设法将所有内容放在一起。不幸的是,文档没有帮助。如何将上传的文件限制为 .jpg 或 .png 以外的文件?
policy, err := storage.GenerateSignedPostPolicyV4(keys.GetKeys().BUCKET_NAME, siteID+".png", &storage.PostPolicyV4Options{
GoogleAccessID: conf.PrivateKeyID,
PrivateKey: conf.PrivateKey,
Expires: time.Now().Add(5 * time.Minute),
Conditions: []storage.PostPolicyV4Condition{
storage.ConditionContentLengthRange(0, 1<<20),
},
})
【问题讨论】:
-
您的意思是要阻止图片(或任何特定的内容类型)?如果是这样,那是不可能的。 Google 检查标头,但不检查数据流的内容。如果您的问题是如何防止带有标头 Content-Type 的上传,请使用
"eq", "$Content-Type", "text/plain"来限制上传大小:"content-length-range", 0, 1000000cloud.google.com/storage/docs/authentication/…
标签: go google-cloud-platform google-cloud-storage pre-signed-url