我正在使用Node.js将图像上传到azure storage https://github.com/Azure/azure-storage-node。上传成功,但在访问网址时无法看到图片。
上传代码如下。
UPDATE table SET bla = 777 WHERE bla = 123;
在azure portal中,我可以看到有些内容已经上传到我的容器中,访问提供的URL只会加载一个空白页面。
var file = 'tmp/myimage.png';
var blobService = azure.createBlobService(config.azure.connection_string);
blobService.createBlockBlobFromLocalFile(config.azure.container, 'taskblob', file, function(err, result, response) {
if(err) return console.log(err);
console.log(response);
callback();
});
在记录“响应”时,我也从Azure获得了成功回复
答案 0 :(得分:1)
@wazzaday,通常,我们可以使用您提供的代码将文件上传到Azure Blob Stroage。
var azure = require('azure-storage');
var blobSvc = azure.createBlobService("**","**");
var file = 'tmp/1.txt';
blobSvc.createContainerIfNotExists('mycontainer', function (error, result, response) {
if (!error) {
// Container exists and allows
// anonymous read access to blob
// content and metadata within this container
console.log('ok')
}
});
blobSvc.createBlockBlobFromLocalFile('mycontainer', 'myblob1', file, function (error, result, response) {
if (!error) {
console.log('file uploaded'+response)
} else {
console.log(error);
}
});
从上面的代码中,我们需要确保文件路径是正确的。 由于Azure Portal上的文件大小为0,我建议您尝试使用ReadStream上传文件并再次检查文件大小。请参考以下代码:
var azure = require('azure-storage');
var fs = require('fs');
var blobSvc = azure.createBlobService("**","**");
var file = 'tmp/1.txt';
var stream = fs.createReadStream(file)
var dataLength = 0;
// using a readStream that we created already
stream
.on('data', function (chunk) {
dataLength += chunk.length;
})
.on('end', function () { // done
console.log('The length was:', dataLength);
});
blobSvc.createContainerIfNotExists('mycontainer', function (error, result, response) {
if (!error) {
// Container exists and allows
// anonymous read access to blob
// content and metadata within this container
console.log('ok')
}
});
blobSvc.createBlockBlobFromStream('mycontainer', 'filename', stream,dataLength, function (error) {
if (!error) {
console.log('ok Blob uploaded')
}
});
请尝试上面的代码,任何更新,请告诉我。