2

想知道如果你聰明的人可以幫助我一個正確的錯誤。關於Azure開發存儲在並行上傳塊blob時,我得到「指定的塊已經存在」

我正在上傳blob塊並行,這對於運行在活動存儲上時對存儲器運行非常好,但是對於dev存儲器,我得到偶爾塊的錯誤「指定的blob已經存在」。奇怪/諷刺的是,如果blob 確實已經存在,那麼我從來沒有看到錯誤。

這裏是我的代碼:

 var container = _cloudBlobClient.GetContainerReference(containerName); 
     container.CreateIfNotExist(); 

     CloudBlockBlob blob = container.GetBlockBlobReference(blobname); 

     // calc number of blocks. Add 1 for remainder 
     var blockCount = ((int)Math.Floor((double)(length/mainBlockSize))) + 1; 
     var blockIds = new List<string>(); 

     Parallel.For(0, blockCount, j => 
     { 
      int blockSize = mainBlockSize; 


      // if the last block then calculate the remaining block size 
      if (j == blockCount - 1) 
       blockSize = (int)length - (mainBlockSize * (blockCount - 1)); 

      var bytes = new byte[blockSize]; 

      string blockId = Convert.ToBase64String(Encoding.UTF8.GetBytes(j.ToString("00000"))); 

      lock (_mutex) 
      { 
       // these operations need to co-exist so the correct block order is maintained 
       blockIds.Add(blockId); 
       stream.Read(bytes, 0, blockSize); 
      } 

      blob.PutBlock(blockId, new MemoryStream(bytes), null); 
     }); 

     // commit the blob with the list of blocks 
     blob.PutBlockList(blockIds); 

我試過設置

_cloudBlobClient.ParallelOperationThreadCount = 1; 

由這個線程What is the Behaviour of UploadFile-CloudBlockBlob?建議,看它是否會作出任何區別,但它仍然出錯。

Arg!第一次我有一個「現場作品,但不是我的機器bug」! :)

我用Fiddler檢查過所有的存儲請求,Live和Dev之間沒有區別,所以我假設這是一個開發存儲的bug。任何想法如何最好地處理這個?

謝謝!

+0

下面是關於msdn論壇的討論。到目前爲止只有一個建議,即並行化無效,但我相信這是不正確的。 http://tinyurl.com/2arhs7p – Dave 2010-06-24 20:30:35

+0

開發存儲和實存儲有不同的實現,過去我在開發存儲方面遇到了限制。我已經停止使用dev存儲進行大多數開發,直接改爲直接訪問特殊存儲帳戶。這樣我就知道我正在測試一些行爲正確的東西。我建議你做同樣的事情。 – Cellfish 2012-02-03 06:29:53

回答

0

您是否在Windows Azure MSDN論壇(http://tinyurl.com/wazforum)上發佈了此消息?

如果這樣做,WA存儲團隊的某個人應該跳入,調查並確認這是一個存儲設備的錯誤。

+0

我現在有史蒂夫。我在MSDN論壇上鍊接到的上面的線程沒有得到回答,因此希望有人會看一下並回應。戴夫 – Dave 2010-06-24 00:15:57

+0

史蒂夫,你有什麼機會可以給存儲團隊一個微調來看看這個問題?謝謝! MSDN論壇帖子:http://tinyurl.com/2arhs7p – Dave 2010-06-26 03:39:16

+0

只是轉發線程...期待有人下週仔細看看。 – smarx 2010-06-26 04:16:01

相關問題