2014-03-06 39 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

只是发布我的示例代码作为答案。看一看,我会在之后删除它。

​​
+0

谢谢!这看起来像我在我的代码中所做的,但不幸的是,我仍然得到相同的错误.....叹气.... – user3349854

+0

你可以发布完整的代码在你的问题?我确信有一些微不足道的东西。 –

+0

我冒昧地用您发布的代码作为答案更新您的问题。我希望你不介意。无论如何,我试过你的代码,仍然无法重现错误。您的代码中提到了您的目标容器名称'container1'吗?你运行的是什么版本的node.js?我运行的是'0.6.20'('node --version')。 –

0

我用Google搜索了一下,发现这样的:

容器名称必须是有效的DNS名,符合以下命名规则:

  1. 容器名称必须以字母开头或数字,并且只能包含字母,数字和破折号( - )字符。
  2. 每个破折号( - )字符必须紧接前面和后面跟一个字母或数字;容器名称中不允许使用连续的破折号。
  3. 容器名称中的所有字母都必须是小写。
  4. 容器名称的长度必须为3到63个字符。
  5. 避免以点(。),正斜杠(/)或两者的序列或组合结尾的斑点名称。