让我说我想在容器中上传blob->'azureblob'
路径:123 / human / a.json
我想检查路径中是否存在任何斑点:123 / human /
我为此找不到任何好的资源。
在c#How to check wether a CloudBlobDirectory exists or not?
中找到了它在节点上找不到任何东西
答案 0 :(得分:2)
如果您要做的只是检查虚拟目录中是否存在任何Blob,则可以在SDK中使用 listBlobsSegmentedWithPrefix
方法并尝试列出这些Blob。如果您得到的结果计数大于零,则表示目录中存在斑点。例如,看一下示例代码:
blobService.listBlobsSegmentedWithPrefix('azureblob', '123/human/', null, {
delimiter: '',
maxReults: 1
}, function(error, result) {
if (!error) {
const entries = result.entries;
if (entries.length > 0) {
console.log('Blobs exist in directory...');
} else {
console.log('No blobs exist in directory...');
}
}
});
如果要在虚拟目录中查找特定的Blob,则可以只使用SDK的 doesBlobExist
方法。例如,看一下示例代码:
blobService.doesBlobExist('azureblob', '123/human/a.json', function(error, result) {
if (!error) {
if (result.exists) {
console.log('Blob exists...');
} else {
console.log('Blob does not exist...');
}
}
});
答案 1 :(得分:0)
由于didBlobExist返回了Promise,您可以尝试以下实现:
**
export async function doesBlobExist(
connectionString,
containerName,
blobFileName
): Promise<boolean> {
const promise: Promise<boolean> = new Promise((resolve, reject) => {
try {
const blobService = azure.createBlobService(connectionString);
blobService.doesBlobExist(containerName, blobFileName, function (
error,
result
) {
if (!error) {
resolve(result.exists);
} else {
reject(error);
}
});
} catch (err) {
reject(new Error(err));
}
});
return promise;
}
**