我从下面的简单Node应用程序尝试连接到Azure blob存储的每次尝试都会导致400 Invalid URL错误。我已经验证了存储密钥(下面的'mykey'),并且直接从管理门户复制了存储帐户(下面的'myaccount'),并且存储帐户是正确的。有什么明显的错误吗?
var http = require('http');
var azure = require('azure');
var port = process.env.port || 1337;
var blobService = azure.createBlobService( 'myAccount', 'myKey');
var containerName = 'photos';
http.createServer(function serverCreated(req, res) {
blobService.createContainerIfNotExists(containerName, null,
containerCreatedOrExists);
function containerCreatedOrExists(error)
{
res.writeHead(200, { 'Content-Type': 'text/plain' });
if(error === null){
res.write('Using container ' + containerName + '\r\n');
blobService.listBlobs(containerName, null, blobsListed);
} else {
res.end('Could not use container: ' + error.Code);
console.log(error);
}
}
function blobsListed(error, blobList)
{
if(error === null){
res.write('Successfully listed blobs in ' + containerName +
':\r\n');
for(var index in blobList){
res.write(blobList[index].name + ' ');
}
res.end();
} else {
res.end('Could not list blobs: ' + error.Code);
}
}
}).listen(port);
答案 0 :(得分:1)
跟进注意到这个问题的解决方案。出于某种原因,我创建了错误的标题,其中包含\r\n
。我把它清理干净,没有列出或发送blob的麻烦。
通过调用以下方式帮助调试Azure SDK for Node代码:
blobService.logger = new azure.Logger(azure.Logger.LogLevels.DEBUG);
让我清楚地看到了请求对象中的标题。
答案 1 :(得分:-2)
for management protal,你可以尝试
var blobService = azure.createBlobService( 'yourAccount', 'yourKey','http://blob.core.windows.net');