java如何查询s3存储桶里是否有某个文件
时间: 2023-12-14 13:36:22 浏览: 362
要查询S3存储桶中是否存在某个文件,可以使用Amazon S3 Java SDK提供的getObjectMetadata()方法。该方法可以返回一个对象的元数据,包括文件大小、最后修改时间等信息。如果返回的元数据是非空的,则说明该文件存在于S3存储桶中。
以下是一个示例代码,以查询名为"example-bucket"的S3存储桶中是否存在名为"example-file.txt"的文件为例:
```java
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.ObjectMetadata;
public class S3Example {
public static void main(String[] args) {
String bucketName = "example-bucket";
String key = "example-file.txt";
AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient();
try {
ObjectMetadata metadata = s3Client.getObjectMetadata(bucketName, key);
System.out.println("File " + key + " found in S3 bucket " + bucketName);
} catch (Exception e) {
System.out.println("File " + key + " not found in S3 bucket " + bucketName);
}
}
}
```
需要注意的是,getObjectMetadata()方法会抛出AmazonS3Exception异常,如果查询的文件不存在则会抛出NoSuchKey异常,因此我们需要在代码中进行异常处理。
阅读全文