0

这是我的存储桶策略

{
    "Version" : "2012-10-17",
    "ID" : "************",
    "Statement" : [
        {
            "Sid" : "************",
            "Effect" : "Allow",
            "Principar" : "*",
            "Action" : [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:GetObject",
                "s3:GetObjectAcl"
            ],
            "Resource" : "************************"
        }
    ]
}

{“版本”:“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;
    }

并获得“存储桶不允许 ACL”,甚至在对象所有权中将其设置为“启用 ACL”

4

1 回答 1

0

您应该能够转到 AWS S3 控制台并导航到您尝试向其中写入对象的存储桶的存储桶详细信息。您将看到一个名为“权限”的选项卡。在那里,您可以选择在具有相同标题的块中更改“对象所有权”。

在那里,您可以选择“启用 ACL”选项。

应用这些更改后,您应该能够使用 ACL 选项编写对象。

于 2022-02-16T15:14:03.300 回答