3

什麼是適合流式傳輸數據的雲數據存儲API?用於流式數據的雲存儲API

具體來說,一個常數數據流:1)沒有已知的結束,並不斷附加到和2)可以在任何時候讀取。

由於分佈式訪問的性質,Amazon S3,Google存儲開發人員和Windows Azure Blob等大型雲存儲選項似乎不支持流式數據。

目前的信念:

1)亞馬遜S3不允許追加操作對象(只更換)。分段上傳API允許「流式傳輸」上傳,但需要在完成寫入後「完成」。

2)谷歌存儲對象是不可變的,同樣的事情。 3)Windows Azure博客存儲具有塊存儲,但與Amazon S3分段上傳一樣,需要將塊「定稿」,因此無法提供開放式流。

任何想法?

回答

0

使用Windows Azure blob存儲,只要需要,您可以繼續追加到相同的blob(並在每次寫入後提交塊列表),並且您可以在讀取時請求任何字節範圍。但是,您仍然無法獲得單個HTTP請求的行爲,並且數據不斷流入。 (你必須請求一個範圍,然後再提出下一個範圍的請求,等等。換句話說,在任何給定的時間,blob的長度都是有限的。)

構建自己的代碼以前端數據(基於套接字的或可能是分塊的HTTP響應)可能是您唯一的選擇,如果我正確理解要求。

+0

謝謝,我沒有意識到,你可以追加到初始寫後blob。我認爲這在很大程度上解決了我的問題,儘管從昨天起我也一直在尋找Page模式。特別是將頁面附加到BLOB。你看到這種方法的任何問題? – ionwarp

+0

我相信頁面blob需要有預定的(固定的)長度,所以你需要創建一個非常大的頁面blob,然後逐漸填充它。阻塞blob可以取而代之的是獲得更長和更長的時間(但是您必須每次提交完整的塊列表,以便列表可能會變得非常長)。 – smarx

+0

你只需要爲你寫的頁面付費,所以在製作一個頁面blob幾個TB然後添加它時沒有問題。您可能需要將該長度保持在某個位置,可能是在文件的開頭。 –

0

你想要的是一個Windows Azure頁面Blob,而不是一個Blob。有關頁面斑點的信息,請參閱:http://msdn.microsoft.com/en-us/library/windowsazure/ee691964.aspx

使用Page Blob可以追加到現有的Blob,主要考慮的是您必須編寫整個512字節的頁面,所以如果您追加到現有文件中,您可能還必須發送511來自文件末尾的現有數據字節。

相關問題