Мы используем класс java для загрузки файла из ведра AWS s3 со следующим кодом
inputStream = AWSFileUtil.getInputStream(
AWSConnectionUtil.getS3Object(null),
"cdn.generalsentiment.com", filePath);
AWSFileUtil - это класс, который проверяет учетные данные и получает входной поток от S3bucket с использованием метода getInputStream. ФайлPath - это файл внутри ведра 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;
}