在AWS SDK Java版本2中,没有与版本1中的doesObjectExist()方法完全等效的方法。但是,你可以使用headObject()方法来检查对象是否存在。
以下是一个使用AWS SDK Java版本2的示例代码:
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.HeadObjectRequest;
import software.amazon.awssdk.services.s3.model.NoSuchKeyException;
public class S3ObjectExistenceChecker {
public static void main(String[] args) {
String bucketName = "your-bucket-name";
String key = "your-object-key";
Region region = Region.US_WEST_2; // 你需要根据你的实际情况设置正确的区域
S3Client s3Client = S3Client.builder()
.region(region)
.build();
try {
HeadObjectRequest headRequest = HeadObjectRequest.builder()
.bucket(bucketName)
.key(key)
.build();
s3Client.headObject(headRequest);
System.out.println("Object exists");
} catch (NoSuchKeyException e) {
System.out.println("Object does not exist");
}
s3Client.close();
}
}
在上述示例中,你需要将bucketName和key替换为你实际使用的存储桶名称和对象键。你还需要根据你的实际情况设置正确的AWS区域。
通过调用headObject()方法并传入存储桶名称和对象键构建的HeadObjectRequest对象,如果对象存在,则该方法将成功返回,并且你可以在输出中看到Object exists消息。如果对象不存在,将抛出NoSuchKeyException异常,并且你可以在输出中看到Object does not exist消息。
最后,记得在使用完AWS SDK客户端后,调用close()方法来关闭客户端,以释放资源。