我正在使用 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/