azure - 与 GetMetadata 存在总是返回 true
问题描述
使用 V2,我试图找出 Azure blob 存储中是否存在文件夹(我知道“文件夹”是一个伪名称,因为它只是文件 url 的一部分)。当我尝试这样做时,无论文件夹是否存在,它总是返回 true。
下面是一个应该返回 false 但返回 true 的示例。文件夹路径“test/2018/5/25”不存在,但 Get Metadata 返回“exists: true, itemName: 25”。存在其他文件夹路径,如“test/2018/5/24,但不是以25结尾的那个,因为没有25号的数据。
有任何想法吗?
管道
{
"name": "Testing",
"properties": {
"activities": [
{
"name": "Get Metadata1",
"type": "GetMetadata",
"policy": {
"timeout": "7.00:00:00",
"retry": 0,
"retryIntervalInSeconds": 30,
"secureOutput": false
},
"typeProperties": {
"dataset": {
"referenceName": "metdatatest",
"type": "DatasetReference"
},
"fieldList": [
"itemName",
"exists"
]
}
}
]
}
}
数据集
{
"name": "metdatatest",
"properties": {
"linkedServiceName": {
"referenceName": "xxx",
"type": "LinkedServiceReference"
},
"type": "AzureBlob",
"typeProperties": {
"format": {
"type": "TextFormat",
"columnDelimiter": "\t",
"nullValue": "\\N",
"treatEmptyAsNull": true,
"skipLineCount": 1,
"firstRowAsHeader": false
},
"fileName": "",
"folderPath": "test/2018/5/25"
}
}
}
解决方案
我可以复制相同的内容,这是一个错误。它当前返回它的容器是否存在,但没有检查这个“虚拟”文件夹的存在。
由于 blob 没有文件夹的概念,为了知道这样的文件夹是否存在,它需要进行文件搜索以检查该文件夹下是否有任何文件,这可能会导致性能问题。我会回到 PROD 团队。敬请期待...
推荐阅读
- amazon-web-services - 将 Windows DNS 服务器与 AWS Lightsail 结合使用
- tensorflow - 如何正确使用张量流函数 embedding_lookup
- python - Tensorflow Serving Predict REST API“未正确格式化 base64 数据”错误
- vue.js - Vue选择选定的选项
- typescript - Typescript 中可扩展的强类型事件发射器接口
- java - 两种指针技术中的贪心算法(快跑和慢跑)
- elasticsearch - 按关键字进行查询过滤会比按整数过滤更好吗?
- javascript - 如何将获取请求返回的数据存储到变量中?
- android - 在android P中清除android通知操作的正确方法?
- firebase - Firestore 云函数数组循环 - 写入长延迟