【发布时间】:2011-05-12 01:25:06
【问题描述】:
我用 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);
【问题讨论】: