在AmazonS3Client
中有一个方法doesObjectExist(String bucketName, String objectName)
。如果您为加密对象调用它,则此方法将抛出com.amazonaws.services.s3.model.AmazonS3Exception: Bad Request (Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request;
。在不知道保存时使用的加密密钥的情况下检查对象是否存在的任何其他方法?我不想在没有加密密钥的情况下访问该对象,我只想知道一个名为' blabla'的对象。是否存在,因此我可以向想要上传名为' blabla'的对象的客户提示错误消息。
答案 0 :(得分:2)
您可以列出存储桶中的所有元素,并检查您的对象是否存在。使用withPrefix
方法可以更好地限制响应
http://docs.aws.amazon.com/AmazonS3/latest/dev/ListingObjectKeysUsingJava.html
ListObjectsRequest listObjectsRequest = new ListObjectsRequest()
.withBucketName(bucketName)
.withPrefix("blabla");
您还可以查看getObjectSummaries()
方法以了解有关返回对象的更多信息