Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 有了Nodejs,为什么我可以从一个Azure blob容器中读取而不能从另一个容器中读取?_Node.js_Azure_Azure Storage - Fatal编程技术网

Node.js 有了Nodejs,为什么我可以从一个Azure blob容器中读取而不能从另一个容器中读取?

Node.js 有了Nodejs,为什么我可以从一个Azure blob容器中读取而不能从另一个容器中读取?,node.js,azure,azure-storage,Node.js,Azure,Azure Storage,我有一个nodejs应用程序在Azure云服务中作为工作角色运行,我有两个blob存储容器,应用程序在响应某些用户请求时将从中读取 这是我的设置: 使用包与我的blob存储接口。 两个容器,每个容器都包含用户可能在某个时候要求的不同类型的文件 我使用以下代码将文件流式传输到HTTP响应: exports.getBlobToStream = function(containerName, fileName, res) { var blobService = azure.createBlob

我有一个nodejs应用程序在Azure云服务中作为工作角色运行,我有两个blob存储容器,应用程序在响应某些用户请求时将从中读取

这是我的设置:
使用包与我的blob存储接口。
两个容器,每个容器都包含用户可能在某个时候要求的不同类型的文件

我使用以下代码将文件流式传输到HTTP响应:

exports.getBlobToStream = function(containerName, fileName, res) {
    var blobService = azure.createBlobService();

    blobService.getBlobProperties(containerName, fileName, function(error, properties, status){
        if(error || !status.isSuccessful)
        {
            res.header('Content-Type', "text/plain");
            res.status(404).send("File " + fileName + " not found");
        }
        else
        {
            res.header('Content-Type', properties.contentType);
            res.header('Content-Disposition', 'attachment; filename=' + fileName);
            blobService.createReadStream(containerName, fileName).pipe(res);
        }
    });
};
一个重要的

在过去,我从两个容器中读取数据都没有问题。在我对这个问题的研究中,我发现了一个完全相同(但已经过时)的问题,这个问题出现在包罗万象的azure sdk for node上。解决这个问题的方法也解决了我的问题,但我不明白为什么。特别是当我可以从同一个应用程序中读取另一个容器,并且使用相同的代码时,不会出现任何问题


我可以接受这个解决方案,但我想了解发生了什么。有什么想法或建议吗?

@winsome,谢谢你向我们提出这个问题。如果设置“模拟”,则表示代码将调用本地存储模拟器而不是实际存储帐户,并且预期将失败。关于在仿真下工作的一个容器,猜测您的本地存储模拟器也有一个相同的容器。请查收