Sum*_*ngi 6 permissions amazon-s3
我正在使用.Net SDK for AWS.
我想将一个文件放入S3并使其内容可以公开读取,我看到我可以使用"Grants"属性来执行此操作,但是我无法在某些字段的联机文档中找到值输入.
var request = new PutObjectRequest()
{
BucketName = "some-bucket",
Key = fileName,
FilePath = filePath,
StorageClass = new S3StorageClass("REDUCED_REDUNDANCY"),
ContentType = "text/csv",
Grants = new List<S3Grant>() {
new S3Grant() {
Grantee = new S3Grantee()
{
CanonicalUser = "Everyone",
DisplayName = "Everyone"
},
Permission = new S3Permission("open/download")}}
};
Run Code Online (Sandbox Code Playgroud)
在上面的请求中:
1)受助人"Everyone"只是我的猜测,那里的有效值应该是多少?
2)对于S3Permission,什么是相当于我的"开放/下载"猜测的有效值?
我知道我必须在桶级别向公众开放列表权限,我可以通过控制台做任何事情,我似乎无法找到有效的API请求参数.
Sum*_*ngi 11
我在AWS论坛得到了答案@ https://forums.aws.amazon.com/message.jspa?messageID=671223
为了方便起见,请在此处重新发布:
http://docs.aws.amazon.com/sdkfornet1/latest/apidocs/html/T_Amazon_S3_Model_S3CannedACL.htm
var request = new PutObjectRequest()
{
BucketName = "some-bucket",
Key = fileName,
FilePath = filePath,
StorageClass = new S3StorageClass("REDUCED_REDUNDANCY"),
ContentType = "text/csv",
CannedACL = S3CannedACL.PublicRead
};
Run Code Online (Sandbox Code Playgroud)
这将上传文件,并使用公共读取权限进行设置.
如果您收到"拒绝访问"错误,请确保您的IAM策略中具有"PutObjectAcl"权限.
对于仍在寻找答案的任何人,添加ACL:'public-read'属性即可解决问题。
s3.putObject({
BucketName = "some-bucket",
Key = fileName,
FilePath = filePath,
ACL:'public-read'
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6924 次 |
| 最近记录: |