ローカル ファイルの MD5 を取得しましたが、Amazon S3 の「同じ」ファイルの MD5 (eTag) とは異なります。私が達成したいのは、S3 にある最新のファイルがローカルにあるファイルと同じかどうかを調べることです。MD5 を比較できない場合、どうすればよいですか?
ローカル ファイルから MD5 を生成する (切り捨てられたコード):
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] md5 = Files.getDigest(localFile, md);
String hashtext = DigestUtils.md5Hex(md5);
S3 から MD5 (eTag) を取得する (切り捨てられたコード):
ObjectListing objectListing = s3.listObjects(new ListObjectsRequest().withBucketName(bucketName));
List<S3ObjectSummary> objectSummaries = objectListing.getObjectSummaries();
for(S3ObjectSummary objectSummary : objectSummaries) {
String MD5 = objectSummary.getETag();
}
PS: 私はライブラリを使用org.apache.commons.codec.digest.DigestUtils
します。com.google.common.io.Files