java – AmazonS3,如何检查上传是否成功?
发布时间:2020-12-14 23:58:53 所属栏目:Java 来源:网络整理
导读:我用 Java编写了一个简短的测试代码来上传在内存中生成的PDF文件.在这个测试代码中我只使用一个虚拟字节数组,但在实际使用中,我将在该字节数组中放置一个生成的PDF(最多2-3页).一切正常:文件上传并设置权限. 然而,因为我已经返回PutObjectResult,我想知道我
我用
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,CannedAccessControlList.PublicRead); 解决方法
我查看了AWS的源代码并对其进行了调试并发现了以下内容:
>如果没有提供MD5,则计算它(适用于真实文件和InputStream) 换句话说,为了回答我自己的问题,它就足以监听异常,因为还检查了上传数据的MD5,因此如果存在损坏,则会引发异常. AmazonClientException和AmazonServiceException是未经检查的异常,因此记住监听它们非常重要,因为编译器不会强制您这样做. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |