工具__Java_SDK使用手冊_歸檔存儲-阿裏雲
本節介紹Java SDK提供的工具類,包括解析Inventory結果的InverntoryResult和文件校驗碼生成ContentEtagGenerator、文件哈希樹校驗碼生成器TreeEtagGenerator。
InventoryResult
InventoryResult是對類型為INVENTORY_RETRIEVAL的Job結果的解析,包含的成員如下
變量名 | 類型 | 描述 |
---|---|---|
vaultRegion | String | Vault所在Region |
vaultId | String | Vault的ID |
inventoryDate | Date | Inventory建立的時間 |
archiveList | List<ArchiveDescriptor> | Archive列表 |
ServiceCredentials credentials = new ServiceCredentials("[yourAccessKeyID]", "[yourAccessKeySecret]");
// 高級接口的入口對象
ArchiveManager manager = new ArchiveManager(credentials);
// 下載Archive列表信息
manager.downloadInventory("[yourVaultName]", new File("[pathForSavingInventory]"));
// 解析結果
InventoryResult result = new InventoryResult().load(new File("[pathForInventory]"));
for (ArchiveDescriptor descriptor : result.getArchiveList()) {
System.out.println(descriptor.getArchiveId());
}
ContentEtagGenerator
ContentEtagGenerator是用於生成校驗碼的幫助類,使用方法可參考以下示例。
- 計算byte[]的校驗碼
byte[] content = { 0x01, 0x02, 0x03 };
String contentEtag = new ContentEtagGenerator()
.update(content)
.asHex();
- 計算String的校驗碼
String content = "abc";
String contentEtag = new ContentEtagGenerator()
.update(content)
.asHex();
- 計算文件的校驗碼
File file = new File("[File Path]");
String contentEtag = new ContentEtagGenerator()
.update(file)
.asHex();
- 計算文件的校驗碼(指定範圍)
// 計算指定文件,偏移量為1024,長度為1024 * 1024的字節內容的校驗碼。
File file = new File("[File Path]");
String contentEtag = new ContentEtagGenerator()
.update(file, 1024, 1024 * 1024)
.asHex();
其中asHex返回的是校驗碼的十六進製字符串表達(大寫)。
需要注意的是,ContentEtagGenerator的計算是帶記憶的,也就是說以下兩個例子的結果是相同的。
String contentEtagA = new ContentEtagGenerator()
.update("abc")
.update("123")
.asHex();
String contentEtagB = new ContentEtagGenerator()
.update("abc123")
.asHex();
assertTrue(contentEtagA.equals(contentEtagB));
如果需要清除ContentEtagGenerator的記憶,請調用ContentEtagGenerator的reset()方法
另外,當調用asHex方法之後,ContentEtagGenerator將會被重置,即之後的計算與調用asHex前輸入的數據無關。
TreeEtagGenerator
- 計算byte[]的校驗碼
不帶長度參數:
byte[] content = { 0x01, 0x02, 0x03 };
String contentEtag = new TreeEtagGenerator()
.update(content)
.asHex();
帶長度參數:
byte[] content = { 0x01, 0x02, 0x03, 0xFF, 0xFF };
String contentEtag = new TreeEtagGenerator()
.update(content, 3) // 第二個參數是有效數據的長度,否則會引起數據紊亂
.asHex();
- 計算String的校驗碼
String content = "abc";
String contentEtag = new TreeEtagGenerator()
.update(content)
.asHex();
- 計算文件的校驗碼
File file = new File("[File Path]");
String contentEtag = new TreeEtagGenerator()
.update(file)
.asHex();
- 計算文件的校驗碼(指定範圍)
// 計算指定文件,偏移量為1024,長度為1024 * 1024的字節內容的校驗碼。
File file = new File("[File Path]");
String contentEtag = new TreeEtagGenerator()
.update(file, 1024, 1024 * 1024)
.asHex();
最後更新:2016-11-23 16:03:56
上一篇:
查詢接口__Java_SDK使用手冊_歸檔存儲-阿裏雲
下一篇:
Python SDK下載__SDK下載_SDK使用手冊_歸檔存儲-阿裏雲
鏡像部署Windows環境__建站教程_雲服務器 ECS-阿裏雲
使用條件更新__最佳實踐_表格存儲-阿裏雲
Gartner公布雲計算市場排位:阿裏雲超越穀歌、緊追第二位微軟
修改流控策略__流量控製相關接口_API_API 網關-阿裏雲
安全管家應急服務處理非安全問題嗎?__常見問題_產品常見問題_安全管家服務-阿裏雲
EDAS 賬號合並計費說明___服務條款和價格說明_企業級分布式應用服務 EDAS-阿裏雲
多實例並發__命令行工具_批量計算-阿裏雲
免費體驗__使用手冊_HTTPDNS-阿裏雲
一條短信多少個字節?__常見問題_短信服務-阿裏雲
RelationCondition__DataType_API 參考_表格存儲-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲