Ans*_*298 57 c# amazon-s3 amazon-web-services
这是我的存储桶政策
{
"Version" : "2012-10-17",
"ID" : "************",
"Statement" : [
{
"Sid" : "************",
"Effect" : "Allow",
"Principar" : "*",
"Action" : [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:GetObject",
"s3:GetObjectAcl"
],
"Resource" : "************************"
}
]
}
Run Code Online (Sandbox Code Playgroud)
{ "版本" : "2012-10-17", "ID" : " " , "声明" : [ { "Sid" : " " , "效果" : "允许", "主体" : " " , "操作" : [ "s3:PutObject", "s3:PutObjectAcl", "s3:GetObject", "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;
}
Run Code Online (Sandbox Code Playgroud)
并获取“存储桶不允许 ACL”,甚至在对象所有权中将其设置为“启用 ACL”
Siw*_*申思维 180
@Rutger 的答案是正确的,现在是 2022 年,aws 控制台发生了变化(不是很多,但有些什么),所以让我展示一下图像:
1.假设您已经创建了s3存储桶,在列表页面中,
2.不要切换“阻止”选项
3.找到所有权,然后单击编辑。
5.现在ACL的编辑按钮可以点击了。
6.切换您想要的权限并保存更改。
完成了,现在您可以通过命令行将图像上传到 s3,然后在浏览器中访问它们:
Rut*_*ger 73
您应该能够转到 AWS S3 控制台并导航到您尝试向其中写入对象的存储桶的存储桶详细信息。您会看到一个名为“权限”的选项卡。在那里,您可以选择更改具有相同标题的块的“对象所有权”。
到达那里后,您可以选择“ACL 已启用”选项。
应用这些更改后,您应该能够使用 ACL 选项编写对象。
| 归档时间: |
|
| 查看次数: |
92100 次 |
| 最近记录: |