如何在Java中将我的文件夹同步到Amazon S3

时间:2011-06-03 18:45:37

标签: java amazon-s3

我正在构建一个java应用程序作为学习练习。现在,我想创建一个应用程序,它将把文件夹中的内容复制到我的Amazon S3存储桶中。通过搜索,我发现判断2个文件是否相同的最佳方法是获取MD5值。

如何在我的存储桶中迭代获取每个文件的MD5?

根据此链接: http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?ListingObjectKeysUsingJava.html

ObjectListing类可以列出存储桶中文件的对象键和(元数据?)。但是,它并没有真正指定我如何与文件进行交互。例如, 对于我的本地文件,我使用guava并执行类似的操作:

MessageDigest md = MessageDigest.getInstance("MD5");
byte[] md4 = Files.getDigest(localFile, md);

查看AWS S3 API,您可以使用S3Object.getObjectContent(),它将返回一个InputStream。这是直接在S3上使用对象的最佳方法吗?

最后,在S3中从本地文件夹同步到存储桶的最佳方法是什么?欢迎任何提示。

感谢!!!!

1 个答案:

答案 0 :(得分:2)

ObjectListing objectListing = s3.listObjects(
  new ListObjectsRequest().withBucketName(bucket));
List<S3ObjectSummary> l = objectListing.getObjectSummaries();

S3ObjectSummary有一个名为eTag的memeber,它是对象的md5哈希