如何检查AmazonS3Client连接是否处于活动状态
问题描述:
我期待开发一个Singletone AmazonS3Client,它可以为我的应用程序上传文件到Amazon S3服务器。但是,我找不到如何检查连接是否处于活动状态并能够上传存储桶。如何检查AmazonS3Client连接是否处于活动状态
是否存在特定的异常,如果连接断开会引发异常?或者连接在一段时间后掉线?
任何答案都会有所帮助。
这里是我的代码片段:
private static final AmazonS3Client s3Client;
static {
AWSCredentials awsCredentials = new BasicAWSCredentials(accessKey, secretKey);
s3Client = new AmazonS3Client(awsCredentials);
}
private static boolean writeFile(AmazonS3Client s3Client, String fileName, File file, Boolean publicRead){
try {
PutObjectRequest p = new PutObjectRequest(bucketName, fileName, file);
if (publicRead)
p.setCannedAcl(CannedAccessControlList.PublicRead);
s3Client.putObject(p);
System.out.println("URL: " + S3_BASE_URL + fileName);
return true;
} catch (AmazonServiceException ase){
ase.printStackTrace();
} catch (AmazonClientException ace) {
ace.printStackTrace();
} catch (Exception ex){
ex.printStackTrace();
} catch (Throwable e) {
e.printStackTrace();
}
return false;
}
答
List<Bucket> bucketList = null;
bucketList = s3Client.listBuckets();
如果遗愿清单大小为null,则连接处于非活动