【问题标题】:Amazon S3 file upload not working - Public Read PermissionAmazon S3 文件上传不起作用 - 公共读取权限
【发布时间】:2015-09-17 17:58:51
【问题描述】:

我正在使用 eclipse SDK 将文件上传到 Amazon S3。显然文件已上传,实际上您可以看到与原始文件(在本例中为 PDF)大小相同但名称与键名相同的文件。如果你点击文件链接,你会得到这个:

此 XML 文件似乎没有任何与之关联的样式信息。文档树如下所示。

<Error>
    <Code>AccessDenied</Code>
    <Message>Access Denied</Message>
    <RequestId>2FA4CE8A99D64D5B</RequestId>
    <HostId>
       t3k5TK/5PvqCNFGjtF5ycvpjS4HaTGcSTNrd8I8f4fe0JvFHdLMJnaO8N9MTZJe0fXm5BU6E+zU=
    </HostId>
</Error>

在这次试用中,我允许了存储桶的所有权限,为什么我看不到 PDF 文件?

编辑

为了下载/查看上传的文件,上传时文件的权限需要设置为公开阅读。

【问题讨论】:

  • 只允许对bucket的权限可能不起作用,您需要在上传时为每个文件设置Public Read属性
  • 谢谢!!!.....上传时必须设置吗?我该怎么做?
  • 是的,您需要在上传时为所有文件设置它,我会为您提供代码
  • 非常感谢!!!!....如果我只想访问上传并仅从特定的 Web 应用程序下载/查看文件,这将如何工作?
  • 我认为在 S3 中 AWS 尚未提供基于任何 IP/地址的任何特定 Web 应用程序访问或请求过滤器

标签: java eclipse amazon-s3


【解决方案1】:

您可以使用withCannedAcl(CannedAccessControlList.PublicRead)将权限设置为公开阅读

public static void main(String[] args) throws IOException {
    AmazonS3 s3client = new AmazonS3Client(new ProfileCredentialsProvider());
    try {
        File file = new File(uploadFileName);
        s3client.putObject(new PutObjectRequest(
                                 bucketName, keyName, file).withCannedAcl(CannedAccessControlList.PublicRead)); // this will set the permission as PublicRead

     } catch (Exception ex) {
        ex.printStacktrace();
    } 
}

【讨论】:

  • @jhugo。如果解决方案有效,您可以选择它作为正确答案。
  • 谢谢!!!!....我正在使用它,并收到错误:拒绝访问(服务:Amazon S3;状态代码:403;错误代码:AccessDenied...)。 ..所以使用 withCannedAcl 比以前“更糟”了。
  • 能否请您确认您有足够的权限在 S3 中上传文件。尝试使用 AWS s3 控制台一次并从他们的 GUI 上传。还要再次检查您的代码是否正确提供了权限。
  • 我创建了一个策略并将其附加到我用来连接的用户,在模拟 putObject 和 putObjectAcl 操作时,我得到“隐式拒绝(未找到匹配的语句)”......政策是:{“版本”:“2012-10-17”,“声明”:[{“操作”:[“s3:PutObject”,“s3:PutObjectAcl”],“资源”:[“arn:aws: s3:::myBucket/*" ], "Effect": "Allow" } ] } ...这是我唯一的权限,除了我用来手动处理 S3 的权限
  • 我不太确定这个政策及其用法,我上面提供的解决方案将解决您的问题,在 OP 中提到。
猜你喜欢
  • 2011-11-28
  • 1970-01-01
  • 1970-01-01
  • 2015-06-19
  • 2016-01-10
  • 2021-04-27
  • 2020-02-23
  • 2016-12-01
  • 2023-04-08
相关资源
最近更新 更多