我用Java编写了一个简短的测试代码来上传在内存中生成的PDF文件.在这个测试代码中我只使用一个虚拟字节数组,但在实际使用中,我将在该字节数组中放置一个生成的PDF(最多2-3页).一切正常:文件上传并设置权限.
然而,因为我已经返回PutObjectResult,我想知道我应该如何检查它.或者是否足以查找AmazonClientException和AmazonServiceException异常?
换句话说:如何检查上传是否成功并且没有损坏我的数据?
String bucket = "mybucket.example.com";
String fileName = "2011/test/test.pdf";
AmazonS3 client = new AmazonS3Client(new BasicAWSCredentials(
"accessKey", "secretKey"));
byte[] contents = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
InputStream stream = new ByteArrayInputStream(contents);
ObjectMetadata meta = new ObjectMetadata();
meta.setContentLength(contents.length);
meta.setContentType("application/pdf");
PutObjectResult res = client.putObject(bucket, fileName, stream, meta);
client.setObjectAcl(bucket, fileName, CannedAccessControlList.PublicRead);
Run Code Online (Sandbox Code Playgroud)
sti*_*vlo 14
我查看了AWS的源代码并对其进行了调试并发现了以下内容:
换句话说,为了回答我自己的问题,它就足以监听异常,因为还检查了上传数据的MD5,因此如果存在损坏,则会引发异常.
AmazonClientException和AmazonServiceException是未经检查的异常,因此记住监听它们非常重要,因为编译器不会强制您这样做.
| 归档时间: |
|
| 查看次数: |
6223 次 |
| 最近记录: |