步骤1:获取最新 aws-java-sdk
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.660</version>
</dependency>
步骤2:正确导入
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.regions.Region;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.ListObjectsRequest;
import com.amazonaws.services.s3.model.ObjectListing;
如果确定存储桶存在,则Specified key does not exists error
表示存储桶名称拼写错误(包含斜杠或特殊字符)。请参考文档中的命名约定。
该文件引用:
如果请求的对象在存储桶中可用,并且用户仍从Amazon S3收到404 NoSuchKey错误,请检查以下内容:
确认请求与对象名称完全匹配,包括对象名称的大小写。对S3对象的请求区分大小写。例如,如果一个对象名为myimage.jpg,但请求了Myimage.jpg,则请求者将收到404 NoSuchKey错误。确认请求的路径与对象的路径匹配。例如,如果对象的路径是awsexamplebucket / Downloads / February / Images / image.jpg,但请求的路径是awsexamplebucket / Downloads / February / image.jpg,则请求者将收到404 NoSuchKey错误。如果对象的路径包含任何空格,请确保请求使用正确的语法来识别路径。例如,如果您使用AWS CLI将对象下载到Windows计算机,则必须在对象路径周围使用引号,类似于:aws s3 cp“ s3:// awsexamplebucket /备份复制作业4 / 3T000000.vbk”。(可选)您可以启用服务器访问日志记录,以更详细地查看请求记录,以查找可能导致404错误的问题。
AWSCredentials credentials = new BasicAWSCredentials(AWS_ACCESS_KEY_ID, AWS_SECRET_KEY);
AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withRegion(Regions.US_EAST_1).build();
ObjectListing objects = s3Client.listObjects("bigdataanalytics");
System.out.println(objects.getObjectSummaries());