簡體   English   中英

Azure 數據湖 gen2 - 驗證上傳的文件(MD5?)

[英]Azure data lake gen2 -Validating uploaded file(MD5?)

我需要驗證上傳到 ADLG2 的文件,但找不到好方法...

有一個 ContentMD5 屬性,但我看不出為什么要更改或更新它

即使我嘗試獲取文件的 HEAD,該屬性也是不存在的HEAD 標頭響應(即使在存儲資源管理器中該屬性存在) 存儲資源管理器中的屬性列表

為什么要在 Azure 端自動生成它? 或一些不同的方式來驗證文件? (我不想上傳文件然后下載並比較它們)

使用 REST API:

當您將文件上傳到 azure 數據湖時,您只需 3 個步驟即可

  1. 放置 -> 在 ADL 中的正確位置創建文件
  2. Patch -> action=append,將數據添加到 blob
  3. Patch -> action=flush,你保存 blob

驗證您是否在第 2 階段添加了您需要的所有數據

在 header 中添加“Content-MD5”,MD5 hash 編碼為 base64

payload = "hello"
headers = {
'Content-Length': '5',
'Content-MD5': 'XUFAKrxLKna5cZ2REBfFkg==',
'Content-Type': 'text/plain'
}
  • 如果一切正常,您將收到狀態:202
  • 如果 MD5 不正確,您將收到狀態 400 - 請求中指定的 MD5 值與服務器計算的 MD5 值不匹配

之后,您要將 MD5 添加到文件(blob)屬性“ContentMD5”,您需要做的是添加到 header“x-ms-content-md5”md5 base64 值,以便下次讀取文件時您可以驗證內容

payload = {}
headers = {
'x-ms-content-md5': 'XUFAKrxLKna5cZ2REBfFkg=='
}

暫無
暫無

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

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