如何检查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,则连接处于非活动