java - AWS S3 - 在 404 NoSuchKey 中获取对象结果

标签 java amazon-s3 aws-sdk

我正在使用 AWS SDK 将图像放入我的 S3 实例中。我能够通过以下方式成功做到这一点:

AmazonS3 s3client = new AmazonS3Client(new ProfileCredentialsProvider());

s3client.putObject(new PutObjectRequest(bucketName, key, file));

在控制台页面浏览S3系统也能看到上传的文件。但是,当我尝试通过 SDK 检索同一文件时,出现 404“NoSuchKey”错误:

AmazonS3 s3client = new AmazonS3Client(new ProfileCredentialsProvider());

S3Object result = s3client.getObject(new GetObjectRequest(bucketName, key));

这是确切的错误:

com.amazonaws.services.s3.model.AmazonS3Exception: The specified key does not exist. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey;

有人知道为什么吗?

最佳答案

同样的事情发生在我身上。文件名没有错,文件存在于存储桶下的正确文件夹中。问题是我在形成 key 的路径之前提供了“/”。就像文件夹结构是存储桶下的下载/模板一样,我将键指定为“/downloads/template”。通过将其更改为“下载/模板”得到解决

关于java - AWS S3 - 在 404 NoSuchKey 中获取对象结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49022953/

相关文章:

node.js - AWS-SDK:S3的列表对象中的查询参数

android - 如何从 AWS Android SDK 导入 AwsClientBuilder 类?

java - AsyncTask onPostExecute 错误中的新 Intent

amazon-s3 - 如何备份或同步Amazon S3存储桶?

javascript - 在一个请求中将多个对象放入 S3

java - 检查 Java 中的 Alfresco 端点 URL 是否可用

java - Hibernate中双向实体是否需要双方互相添加?

Java多变长参数

java - 如何实现可以简单地用 Java 部署的 Web 服务(如 Jenkins)

java - AWS Lambda/Aws Batch 工作流程