2017-07-13 12 views
0

當我使用StartCopyAsync向另一個存儲帳戶啓動塊blob的異步副本時,Azure會爲我執行任何類型的完整性檢查嗎?如果不是,是否有辦法讓它進行?當我有Azure時,請執行CloudBlockBlob.StartCopyAsync(),是否有辦法讓它驗證校驗和?

我發現我可以設置Properties.ContentMD5屬性,並在上傳blob時驗證完整性。它是否也在複製操作過程中進行驗證?

我搜索了整個文檔,發現在異步拷貝期間沒有提到完整性檢查。我發現一對AzCopy進行完整性檢查的引用,它也有/CheckMD5選項,這實際上是Azure在blob副本之後執行的操作。

回答

1

據我所知,azure blob SDK是azure blob rest api的包。

因此,Azure SDK StartCopyAsync方法將使用copy operation(其餘api)發送到Azure服務器端以告知服務器副本。

根據複製操作article,您可以找到「複製blob時,以下系統屬性被複制到具有相同值的目標blob」。

它包含「Content-MD5」屬性。

+0

你是對的,它確實複製了它。我想知道的是,系統是否做了任何事情來確保新複製的blob與複製的md5匹配? –

+0

MD5未經驗證,但還有其他完整性檢查。副本中的數據損壞不應該成爲問題,只要源BLOB上的Content-MD5頭是正確的,目標BLOB上的頭也應該是正確的。但是,請注意,可以將Blob上的Content-MD5標頭設置爲任何您想要的值 - Storage Service在使用PutBlockList時不驗證它是正確的,如果不正確,該值仍將被複制到新的blob。 –

相關問題