簡體   English   中英

如何將本地文件與Amazon S3文件進行比較

[英]How to compare local file with Amazon s3 file

我正在開發桌面Java應用程序。 它需要檢查我的S3服務器上的特定文件。

我不想下載整個文件進行比較,我需要確定服務器中的文件是否比本地文件新,然后下載並替換。

我不確定如何檢查其中是否有較新的可用部分。

我聽說過將散列作為一種方法,但是我對如何在兩個方面(本地和通過S3)實際進行哈希處理的經驗都很少

獲取遠程文件的哈希值: 如何獲取Amazon S3上文件的md5sum

要獲取本地文件的哈希,請執行以下操作: 用Java獲取文件的MD5校驗和

以編程方式比較E-Tag以查找大小小於5 GB的文件。

計算本地文件的哈希值:

String hash = DigestUtils.md5Hex(new FileInputStream(path));

獲取S3對象的Etag :@dnault已經提到了獲取S3對象的Etag

如果按上述說明計算哈希,則在文件大小小於5 GB的所有情況下,哈希值都應相同。

如果文件大小大於5 GB: 多部分MD5

如果您也是最初在S3上創建文件的人,則可以在第一次meta.setUserMetadata(mymap) )時將自定義ObjectMetadata與MD5存儲在一起(例如meta.setUserMetadata(mymap) putObject() ,然后使用s3.getObjectMetadata()進行查找。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM