2014-03-06 13 views
1

copyBlob Node.js API를 사용하여 한 컨테이너의 BLOB를 다른 컨테이너로 복사하는 데 성공한 사람이 있습니까? 서버 스크립트에서 copyBlob API를 사용하려고했지만 "오류 : 컨테이너 이름 형식이 잘못되었습니다."라는 오류 메시지가 표시됩니다.Azure copyBlob Node.js API 오류

내 코드의 구조는 다음과 같다 :

blobService.copyBlob(uri, containerName, blobName, function (error) { 

    if (error != null) { 
     console.log(error); 
    } else { 
     request.respond(); 
    } 
}); 

내 코드는 아래에 제공됩니다

10 var blobService = azure.createBlobService('mystorage', accountKey, 'mystorage.blob.core.windows.net');  
11  
12 blobService.copyBlob("http://mystorage.blob.core.windows.net/e0f57621-20a3-4e17-b418-c0139c6daef8/myimage.jpg", "container1", "myimage.jpg", function (error) { 
13  if (error != null) { 
14   console.log(error); 
15  } else { 
16   console.log("success");          
17  }      
18 }); 

나는 항상받은 오류 메시지는 내가 꽤 있어요

Error in script '/table/myblob.insert.js'. Error: Container name format is incorrect. 
[external code] 
at insert (</table/myblob.insert.js>:12:17) 
at </table/myblob.insert.js>:1:8 
[external code] 

입니다 containerName의 문자열 형식이 올바른지 확인하십시오.

도와주세요.

감사합니다.

+0

'uri','containerName' 및'blobName' 변수로 전송 된 실제 값을 공유 할 수 있습니까? –

+0

물론, uri, containerName 및 blobName의 실제 값은 "http://mystorage1.blob.core.windows.net/mystorage-container1/blob1.jpg", "mystorage-container2"및 "blob1.jpg"입니다. . 감사! – user3349854

+0

이것은 정말 이상합니다 .... 나는 "컨테이너 이름 형식이 올바르지 않습니다." 오류 메시지뿐 아니라 "오류 : 컨테이너 이름이 비어 있지 않은 문자열이어야합니다."를 참조하십시오. 때때로. 나는 꽤 내 containerName 비어 있지 않은 문자열입니다 확신 ... – user3349854

답변

1

답변으로 샘플 코드 만 게시하십시오. 한번보세요. 나중에 삭제하겠습니다.

var AZURE = require('azure'); 
var blobService = AZURE.createBlobService("cynapta", "accountkey"); 
blobService.copyBlob("https://cynapta.blob.core.windows.net/mystorage-container1/tsmile.png", "mystorage-container2", "tsmile.png", function (error) { 
    if (error != null) { 
     console.log(error); 
    } else { 
     console.log("copied successfully."); 
    } 
}); 
+0

감사! 이것은 내 코드에서 한 것처럼 보이지만 불행히도 여전히 같은 오류가 ..... ..... 한숨을 쉬게됩니다. – user3349854

+0

질문에 전체 코드를 게시 할 수 있습니까? 실종 된 사소한 것이있을 것이라고 확신합니다. –

+0

나는 당신이 대답으로 올린 코드로 당신의 질문을 자유롭게 갱신했다. 네가 괜찮 았으면 좋겠다.어쨌든, 귀하의 코드를 시도했지만 여전히 오류를 재현 할 수 없습니다. 코드에서 언급 한대로 대상 컨테이너 이름이'container1'입니까? 실행중인 node.js의 버전은 무엇입니까? 저는'0.6.20' ('node --version') 버전을 사용하고 있습니다. –

0

내가 조금 인터넷 검색이 발견

컨테이너 이름은 다음 명명 규칙에 부합하는 유효한 DNS 이름이어야합니다 :

  1. 컨테이너 이름을 문자로 시작해야합니다 또는 숫자 만 사용할 수 있으며 문자, 숫자 및 대시 (-) 문자 만 포함 할 수 있습니다.
  2. 대시 (-) 문자는 바로 앞에 와야하며 그 뒤에 문자 또는 숫자가 와야합니다. 컨테이너 이름에는 연속 대시가 허용되지 않습니다.
  3. 컨테이너 이름의 모든 문자는 소문자 여야합니다.
  4. 컨테이너 이름은 3 자에서 63 자 사이 여야합니다.
  5. 점 (.), 슬래시 (/) 또는 두 시퀀스 또는 조합으로 끝나는 blob 이름을 사용하지 마십시오.