【问题标题】:How to set the permission on files at the time of Upload through Amazon s3 API如何在通过 Amazon s3 API 上传时设置文件权限
【发布时间】:2010-10-05 12:11:12
【问题描述】:
有没有办法在通过Amazon S3 API上传文件时设置文件权限。
在我当前的解决方案中,我可以将文件上传到我的存储桶中,但我无法通过文件属性部分中提到的 URL 查看文件。当我在查询字符串中传递访问密钥时,它正在打开。
Amazon S3 中是否需要任何设置,或者我需要在上传时设置所有文件的权限。
提前致谢。
卡马尔·康德·潘萨里
【问题讨论】:
标签:
c#
api
amazon-s3
amazon
file-permissions
【解决方案1】:
为您的 PUT 请求添加标头:
x-amz-acl: public-read
【解决方案2】:
在 C# 中,当您创建 >mazon 的响应对象时,在响应方法中您将找到 Addheader。
您需要将标题设置为
response.Addheader("x-amz-acl","public-read");
亚马逊在其网络服务 API 中提供这些方法,请参考。
【解决方案3】:
您还可以使用 Bucket Policies 功能。
以下是指示 amazon s3 公开所有文件(包括您将上传的新文件)的存储桶策略示例:
{
"Version":"2008-10-17",
"Statement":[{
"Sid":"AllowPublicRead",
"Effect":"Allow",
"Principal": {
"AWS": "*"
},
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::your.bucket.name/*"
]
}
]
}
将 your.bucket.name 替换为您的实际存储桶名称
您可以使用S3 Browser 免费软件查看和编辑存储桶策略。您可以找到更多存储桶策略示例here。