出现 "The bucket does not allow ACLs" 错误
getting "The bucket does not allow ACLs" Error
这是我的存储桶策略
{
"Version" : "2012-10-17",
"ID" : "************",
"Statement" : [
{
"Sid" : "************",
"Effect" : "Allow",
"Principar" : "*",
"Action" : [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:GetObject",
"s3:GetObjectAcl"
],
"Resource" : "************************"
}
]
}
{
“版本”:“2012-10-17”,
"ID" : "",
“陈述” : [
{
“希德”:“”,
“效果”:“允许”,
“校长”:“”,
“行动” : [
“s3:放置对象”,
“s3:PutObjectAcl”,
“s3:获取对象”,
“s3:GetObjectAcl”
],
“资源”:“***********************”
}
]
}
这是我用来上传图片的代码:
[HttpPost]
public bool UploadFile(string file)
{
var s3Client = new AmazonS3Client(accesskey, secretkey, RegionEndpoint.APSoutheast1);
var fileTransferUtility = new TransferUtility(s3Client);
if (file.Length > 0)
{
var filePath = file;
var fileTransferUtilityRequest = new TransferUtilityUploadRequest
{
BucketName = bucketName,
FilePath = filePath,
StorageClass = S3StorageClass.StandardInfrequentAccess,
PartSize = 6291456, // 6 MB.
Key = keyName,
CannedACL = S3CannedACL.PublicRead
};
fileTransferUtilityRequest.Metadata.Add("param1", "Value1");
fileTransferUtilityRequest.Metadata.Add("param2", "Value2");
fileTransferUtility.Upload(fileTransferUtilityRequest);
fileTransferUtility.Dispose();
}
return true;
}
并获得“存储桶不允许 ACL”甚至在对象所有权中将其设置为“启用 ACL”
您应该能够转到 AWS S3 控制台并导航到您尝试写入 objects 的存储桶的存储桶详细信息。您会看到一个名为 'Permissions' 的选项卡。您可以选择在具有相同标题的区块中更改“Object 所有权”。
在那里,您可以选择“启用 ACL”选项。
应用这些更改后,您应该可以使用 ACL 选项编写 objects。
这是我的存储桶策略
{
"Version" : "2012-10-17",
"ID" : "************",
"Statement" : [
{
"Sid" : "************",
"Effect" : "Allow",
"Principar" : "*",
"Action" : [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:GetObject",
"s3:GetObjectAcl"
],
"Resource" : "************************"
}
]
}
{ “版本”:“2012-10-17”, "ID" : "", “陈述” : [ { “希德”:“”, “效果”:“允许”, “校长”:“”, “行动” : [ “s3:放置对象”, “s3:PutObjectAcl”, “s3:获取对象”, “s3:GetObjectAcl” ], “资源”:“***********************” } ] }
这是我用来上传图片的代码:
[HttpPost]
public bool UploadFile(string file)
{
var s3Client = new AmazonS3Client(accesskey, secretkey, RegionEndpoint.APSoutheast1);
var fileTransferUtility = new TransferUtility(s3Client);
if (file.Length > 0)
{
var filePath = file;
var fileTransferUtilityRequest = new TransferUtilityUploadRequest
{
BucketName = bucketName,
FilePath = filePath,
StorageClass = S3StorageClass.StandardInfrequentAccess,
PartSize = 6291456, // 6 MB.
Key = keyName,
CannedACL = S3CannedACL.PublicRead
};
fileTransferUtilityRequest.Metadata.Add("param1", "Value1");
fileTransferUtilityRequest.Metadata.Add("param2", "Value2");
fileTransferUtility.Upload(fileTransferUtilityRequest);
fileTransferUtility.Dispose();
}
return true;
}
并获得“存储桶不允许 ACL”甚至在对象所有权中将其设置为“启用 ACL”
您应该能够转到 AWS S3 控制台并导航到您尝试写入 objects 的存储桶的存储桶详细信息。您会看到一个名为 'Permissions' 的选项卡。您可以选择在具有相同标题的区块中更改“Object 所有权”。
在那里,您可以选择“启用 ACL”选项。
应用这些更改后,您应该可以使用 ACL 选项编写 objects。