【发布时间】:2012-03-14 19:22:36
【问题描述】:
我们使用 java 类从 AWS s3 存储桶下载文件,代码如下
inputStream = AWSFileUtil.getInputStream(
AWSConnectionUtil.getS3Object(null),
"cdn.generalsentiment.com", filePath);
AWSFileUtil 是一个检查凭证并使用 getInputStream 方法从 S3bucket 获取输入流的类。filePath 是 cdn.generalsentiment.com 存储桶中的文件。
我们想编写一个方法,它可以检查特定文件是否存在于 AWS S3 存储桶中,并返回一个布尔值或其他值。
请给我一个解决方案。
public static boolean isValidFile(AmazonS3 s3,
String bucketName,
String path) throws AmazonClientException {
try {
ObjectMetadata objectMetadata =
s3.getObjectMetadata("cdn.generalsentiment.com", path);
} catch (NotFoundException nfe) {
nfe.printStackTrace();
}
return true;
}
如果文件存在,则返回 true,否则抛出 NotFoundException,我想捕获它并将“isValidFile”方法结果返回为 false。 伙计们,方法体或返回类型的任何其他替代方案都会很棒。
更新的一个
public static boolean doesFileExist(AmazonS3 s3,
String bucketName,
String path) throws AmazonClientException,
AmazonServiceException {
boolean isValidFile = true;
try {
ObjectMetadata objectMetadata =
s3.getObjectMetadata("cdn.generalsentiment.com", path);
} catch (NotFoundException nfe) {
isValidFile = false;
}
catch (Exception exception) {
exception.printStackTrace();
isValidFile = false;
}
return isValidFile;
}
【问题讨论】: