2017-04-17 65 views
1

團塊我試圖並行數據上傳到相同的塊斑點,從多個Java進程。這些進程沒有辦法相互交流,所以他們不知道最後一個塊的上傳時間。PUTing塊分成用java天青存儲客戶端

我想提交已被處理上傳後立即每個塊。我想我可以使用commitBlockList來做到這一點,但它的行爲似乎消滅了未提交的塊。我嘗試通過租約來同步對blob的訪問,以便每個進程都會獲得blob上的租約並通過downloadBlockList下拉列表,並更新每個進程已上載的塊,但這仍然具有意外的行爲(塊繼續從中消失列表)。

有沒有在Java Azure存儲客戶端,讓我更新單個塊的塊存儲BLOB承諾狀態的操作?或者,是否有一些參數可以傳遞給uploadBlock,使其在完成上傳後立即將塊的狀態設置爲COMMITED?

回答

0

好吧,我想通了,我的誤解,從文檔:

「的任何承諾塊覆蓋BLOB的現有屬性和元數據,並放棄所有未提交的塊。」

我只是獲取租約時我想更新塊列表,並沒有意識到,當我犯了塊列表,我會被銷燬未列入名單的任何未提交塊。編寫我的塊時我沒有獲得租約,因爲這會破壞我同時從多個不同進程上傳的任何並行性。

我就必須去嘗試別的東西。

+0

大,請把它標記爲一個答案,這將幫助別人。 –