Azure copyBlob Node.js API错误

有没有人成功地使用copyBlob Node.js API将blob从一个容器复制到另一个容器? 我试图在服务器脚本中使用copyBlob 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的string格式是正确的。

请帮忙。

谢谢!

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

 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."); } }); 

我GOOGLE了一下,发现这一点:

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

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