【发布时间】:2018-11-18 14:59:59
【问题描述】:
我想要完成的是使用signature-v4 将文件直接从浏览器发送到s3。我在为对象构建策略文档时遇到问题
从这里: https://blog.shikisoft.com/signing-aws-s3-uploads-with-signature-v4-ruby-on-rails-angularjs/
我可以看到该文档的外观:
Base64.encode64(
{
"expiration" => 1.hour.from_now.utc.xmlschema,
"conditions" => [
{ "bucket" => bucket },
[ "starts-with", "$key", "" ],
{ "acl" => "private" },
[ "starts-with", "$Content-Type", "" ],
{"x-amz-algorithm" => x_amz_algorithm },
{"x-amz-credential" => x_amz_credential },
{"x-amz-date" => x_amz_date},
[ "content-length-range", 0, 524288000 ]
]
}.to_json
我不知道我应该使用什么 ACL。
我只想授予用户上传具有特定 .extension(s) 的文件的权限,并且在此用户之后应该能够删除它甚至阅读它。该权限应仅适用于该文件
这是 ACL 权限列表(我相信它是正确的地方) https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
我能否以某种方式获得仅用于上传、仅用于删除、仅用于读取、仅用于读取和删除一个文件的权限?另一个问题是我认为应该基于扩展生成的内容类型。
如果我缺乏一些基本概念,请原谅我
编辑 1
我没有提到我想使用分段上传和来自 aws 的文档 https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
除了s3:getObject,s3:putObject,我还要给s3:ListMultipartUploadParts
我怎样才能将它限制在文件或文件夹中?情况是每个用户都有私人文件,并且应该只能访问他拥有的文件
【问题讨论】:
标签: javascript ruby-on-rails amazon-web-services amazon-s3 acl