2

만약 당신이 똑똑한 사람이라면 버그의 올바른 두더지를 도울 수 있습니다.Azure Development Storage에서 블록 BLOB를 병렬로 업로드 할 때 "지정된 BLOB가 이미 존재합니다"라는 메시지가 나타납니다.

블롭 블록을 병렬로 업로드하고 있는데 이는 실제 저장 장치에 대해 실행될 때 완벽하게 정상적으로 작동하지만 dev 저장 장치에 대해서는 가끔씩 오류가 발생합니다. 기 묘하게도/아이러니 컬 한 점은 얼룩 이 이미 일 경우 오류가 표시되지 않는다는 것입니다. 나는 그것이 어떤 차이를 만들 것입니다 있는지 확인하기 위해이 스레드 What is the Behaviour of UploadFile-CloudBlockBlob?에 의해 제안하지만 여전히 오류가 발생한으로

_cloudBlobClient.ParallelOperationThreadCount = 1; 

설정을 시도했습니다

 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); 

:

여기 내 코드입니다.

Arg! 처음으로 "라이브로 작동하지만 내 컴퓨터 버그에는 작동하지 않습니다"! :)

나는 모든 저장 요청을 Fiddler와 점검 했으므로 Live와 Dev의 차이점이 없으므로 개발 저장소의 버그라고 가정합니다. 가장 좋은 방법에 대한 아이디어?

감사합니다.

+0

다음은 msdn 포럼에 대한 토론입니다. 지금까지는 병렬화가 유효하지 않다고 제안했지만 올바르지 않다고 생각합니다. http://tinyurl.com/2arhs7p – Dave

+0

데브 스토리지와 실제 스토리지는 서로 다른 구현 방식을 가지고 있으며 과거에는 dev 스토리지에 한계가있었습니다. 대부분의 개발을 위해 dev 저장소 사용을 중단하고 대신 직접 특수 저장소 계정을 사용합니다. 그렇게하면 올바른 방법으로 작동하는 것을 테스트하고 있음을 알 수 있습니다. 나는 당신이 똑같은 일을하는 것이 좋습니다. – Cellfish

답변

0

Windows Azure MSDN 포럼 (http://tinyurl.com/wazforum)에 게시 했습니까?

그렇다면 WA 스토리지 팀원 중 누군가가 들어가서 조사하고 dev 저장 장치로 버그가 있는지 확인해야합니다.

+0

나는 이제 스티브가있다. MSDN 포럼에서 위에 링크 된 스레드는 답변을 얻지 못했기 때문에 누군가가 이것을보고 응답 할 것입니다. Dave – Dave

+0

스티브, 스토리지 팀에게이 문제를 살펴볼 수있는 기회를 줄 수 있습니까? 감사! MSDN 포럼 게시물 : http://tinyurl.com/2arhs7p – Dave

+0

방금 ​​스레드를 전달했습니다 ... 다음 주에 더 자세히 살펴볼 것으로 기대하십시오. – smarx