【发布时间】:2017-05-31 13:19:29
【问题描述】:
我想在 nodejs 中获取一个 azure 容器中的所有文件夹和文件
我正在使用 azure-storage 库来获取 blob,但找不到任何示例来列出容器下的所有文件夹。我正在将我的分析数据转储(导出)到 auzure 中的存储容器。现在我尝试阅读这些文件
我的存储结构喜欢
ios-analytics-full/ios_06cd82e4db0845b9bef73c5b22bea2fa/Event/2016-09-29/18/270b58c-04d7-4e5d-a503-cdce24a3940c_20160929_184723.blob
我想读取每天创建的所有文件夹以及这些文件夹下的文件
var containerName = "assist-ios-analytics-full";
blobService.listBlobsSegmented(containerName, null, {maxResults : 10}, function(err, result) {
if (err) {
console.log("Couldn't list blobs for container %s", containerName);
console.error(err);
} else {
console.log('Successfully listed blobs for container %s', containerName);
console.log(result.entries);
console.log(result.continuationToken);
res.json(result);
}
});
最新的文件夹是今天的日期
ios-analytics-full/ios_06cd82e4db0845b9bef73c5b22bea2fa/Event/2017-05-31/18/270b58c-04d7-4e5d-a503-cdce24a3940c_20160929_184723.blob
【问题讨论】:
-
任何云 BLOB 存储提供商中都没有文件夹。绝对不是亚马逊、Azure、Rackspace、Openstack。其中ALL 提供平面存储,带有特定字符,通常
/用作模拟文件夹的占位符。根据提供者的不同,你可以请求所有以某个前缀开头的文件,相当于请求一个文件夹中的所有文件 -
扁平存储的原因是文件夹需要递归,因此无法扩展到云存储
-
但是auzre说容器里面有文件夹,我也给出了路径格式“ios_06cd82e4db0845b9bef73c5b22bea2fa/Event/2016-09-29/18/”
-
所以如果我理解正确,您希望指定
ios-analytics-full/ios_06cd82e4db0845b9bef73c5b22bea2fa/Event/{date e.g. 2016-09-29}并查看那里的所有 blob 列表。对吗? -
是的,每天都会在容器中转储分析数据,我想读取这些数据
标签: node.js azure azure-blob-storage azure-application-insights