【问题标题】:Issue uploading object PublicRead to Amazon S3 using .NET使用 .NET 将对象 PublicRead 上传到 Amazon S3 问题
【发布时间】:2018-03-21 14:55:54
【问题描述】:

我在将 PublicRead 对象上传到 Amazon S3 公司存储桶时遇到问题。

我有一个个人 Amazon S3 帐户,我可以使用下面的代码使用 S3CannedACL.PublicRead 上传到我创建的私有存储桶,但是当我尝试使用公司存储桶执行此操作时,我收到拒绝访问错误。如果我删除 S3CannedACL.PublicRead 我可以将对象上传到这个公司存储桶,也可以在上传后删除和下载,但我无法通过公共 URL 访问对象,我需要这样做。

        var amazonFileName = Guid.NewGuid();

        var request = new PutObjectRequest()
        {
            BucketName = _amazonBucketName,
            InputStream = fileStream,
            Key = amazonFileName.ToString(),
            CannedACL = S3CannedACL.PublicRead
        };

        var result = _amazonClient.PutObject(request);

似乎缺少许可或类似情况,但我无权访问此公司帐户,因此很难弄清楚那里发生了什么。在我的个人帐户中,我只需要创建存储桶。

有人知道这个公司存储桶/帐户缺少什么来允许上传 PublicRead 对象吗?

【问题讨论】:

    标签: c# asp.net-mvc amazon-s3 amazon


    【解决方案1】:

    这是由于对关联的 AWS 凭证没有正确的权限造成的。具体来说,您需要获得s3:PutObjectAcl 的许可。这可以在 IAM 中进行配置。

    希望有帮助!

    【讨论】:

    • 拥有 Amazon S3 凭证的人已经做到了,并且成功了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 2013-11-21
    • 2014-06-10
    • 1970-01-01
    相关资源
    最近更新 更多