如何使用 Java 检查给定 S3 存储桶中是否存在指定的密钥
2022-08-31 09:14:42
我想使用Java检查给定存储桶中是否存在密钥。我查看了API,但没有任何有用的方法。我试图使用,但它抛出了一个异常。getObject
我想使用Java检查给定存储桶中是否存在密钥。我查看了API,但没有任何有用的方法。我试图使用,但它抛出了一个异常。getObject
更新:
似乎有一个新的API来检查这一点。请参阅此页面中的另一个答案:https://stackoverflow.com/a/36653034/435605
原文:
用errorCode.equals("NoSuchKey")
try {
AmazonS3 s3 = new AmazonS3Client(new ClasspathPropertiesFileCredentialsProvider());
String bucketName = getBucketName();
s3.createBucket(bucketName);
S3Object object = s3.getObject(bucketName, getKey());
} catch (AmazonServiceException e) {
String errorCode = e.getErrorCode();
if (!errorCode.equals("NoSuchKey")) {
throw e;
}
Logger.getLogger(getClass()).debug("No such key!!!", e);
}
关于异常的注意事项:我知道异常不应该用于流控制。问题是亚马逊没有提供任何api来检查此流程 - 只是关于异常的文档。