2016-03-07 23 views
0

是否有一種blob(塊,頁面等)的形式可以允許使用C#api?機器X可能正在將文件上傳到天藍色的blob端點,並且機器Y正在實時讀取文件。在我看來,像塊blob不會工作,因爲你需要先放置阻止列表,然後才能查詢它的http端點,但有沒有辦法查詢未提交的塊並預先下載它們?在完成之前開始下載部分azure blob

實踐中的一個例子是用戶機器與服務器握手,從服務器獲取寫入共享訪問令牌並上傳文件的權限。客戶端#1機器開始上傳 - 現在說,第二個客戶端機器從服務器請求文件,但客戶端#1尚未完成上傳。在這種情況下,客戶端#2將從服務器獲取相關詳細信息,並獲取只讀共享訪問令牌,然後即使尚未完成上傳,也會開始讀取文件。

+0

'機器Y'知道blob正在上傳?你能用一個例子來描述你的需求嗎? –

+0

@GauravMantri:我添加了一個具體的例子。 – caesay

+0

你讀過關於追加blob的文檔嗎?我認爲一個精心設計的附加blob上傳過程可以滿足您的要求。 –

回答

0

Block Blobs我不認爲有可能開始下載blob而它仍然上傳。這僅僅是因爲目前沒有任何東西被存儲。當您上傳blob的塊時,Azure存儲只會將字節塊存儲在某個位置。

只有當您提交阻止列表時,Azure存儲纔會通過在提交阻止列表操作中基於請求有效負載排列字節塊來創建塊blob。即使Azure Storage lets to see the block list before it is committed,它也不會暴露任何API來讀取塊的內容。

我不認爲Page Blob是正確的BLOB類型在方案中(同樣與Append Blob),即使此刻你寫它得到的blob和其他主叫方犯下的頁面可以get the page ranges,並開始下載存儲在數據這些頁面。但是,頁面大小必須是512字節的倍數,並且並非您的應用程序中上傳的所有文件都能滿足此要求。

相關問題