Azure存储包含以下代码的指南
blobSvc.createBlockBlobFromLocalFile('mycontainer', 'myblob','test.txt', function(error, result, response){
if(!error){
// file uploaded
}
});
当我在项目中使用这段代码时,我收到一条错误消息:" ENOENT,没有这样的文件或目录' /main_900.jpg'"
我的代码看起来像这样
var blobSvc = azure.createBlobService('<myStorageName>', '<myStorageKey>',
'https://<myStorageName>.blob.core.windows.net/');
blobSvc.createBlockBlobFromLocalFile('mycontrainer', 'blob', myScope.currentFile.name, function (error, result, response) {
if (!error) {
var hey = "file was a success";// file uploaded
} else {
var oops = "error";
}
});
其中myScope.currentFile.name是我尝试上传的文件的名称(main_900.jpg)。我知道我的blobSvc是正确的,并连接到我的Azure存储,因为我能够创建一个包含代码的容器:
blobSvc.createContainerIfNotExists('mycontainer', function (error, result, response) {
});
假设三个参数是什么?我相信我的输入正确。本地文件必须在哪里?我已在多个目录中尝试过它,并尝试将文件名更改为指向那里。似乎没有任何效果。任何人都可以指导我做错了吗?
以下是Microsoft指南的链接:https://azure.microsoft.com/en-us/documentation/articles/storage-nodejs-how-to-use-blob-storage/#upload-a-blob-into-a-container
答案 0 :(得分:0)
您可以参考https://github.com/Azure/azure-storage-node/blob/master/lib/services/blob/blobservice.js#L2890的源代码了解详情。
前三个参数是:
* @param {string} container The container name.
* @param {string} blob The blob name.
* @param {string} localFileName The local path to the file to be uploaded.
BlobService.prototype.createBlockBlobFromLocalFile = function (container, blob, localFileName, optionsOrCallback, callback){
...
}
所以关于你的问题,它应该是路径问题。请仔细检查文件路径,您可以使用fs
模块首先检查文件路径:
var fs = require('fs');
if (fs.existsSync(path)) {
// Do something
}
如有任何疑问,请随时告诉我。