2016-11-21 31 views
0

我在Azure中有一個BLOB容器,我已經保存了一些塊BLOB。以下代碼是讀取特定BLOB的方法,我將保存在變量BLOB ETag中,但它始終返回null。Azure塊BLOB ETag爲空

public static string DownloadAsText(string ContainerName, string BlobName, out string ETag) 
{ 
    CloudBlobContainer BlobContainer = CreateCloudBlobClient().GetContainerReference(ContainerName); 
    CloudBlockBlob Blob = BlobContainer.GetBlockBlobReference(BlobName); 
    ETag = Blob.Properties.ETag; 
    return Blob.DownloadText(); 
} 
+0

爲什麼你需要blob的ETag?實際上,BlobContainer.GetBlockBlobReference()不會觸發對Azure存儲服務的請求,您可能需要調用Blob.FetchAttributes()來從服務器端獲取信息。 –

回答

1

據我所知,CloudBlockBlob.GetBlockBlobReference只是在客戶端的容器中返回一個塊blob的引用。爲了檢索Blob的屬性,需要明確地向服務器端發送請求。

此外,ETag用於管理Blob服務中的併發。它是blob(文件)的標識符,每次在blob(文件)上執行更新操作時都會更新它。欲瞭解更多詳情,您可以按照官方tutorial的方式更好地瞭解ETag並充分利用它。