登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-19 20:03:33 457浏览 收藏

今天golang学习网给大家带来了《如何为 Google 存储创建文件大小有限的签名 URL?》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

问题内容

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


解决方案


您正在寻找 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),
        },
})

policy document 可让您更好地控制在云端存储上上传的对象,通过此功能,您可以控制每次上传必须满足的一系列条件。

由于您需要控制需要上传的对象的大小,因此我建议您看一下这个指向 here 的示例:

{"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。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《如何为 Google 存储创建文件大小有限的签名 URL?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>