azure-storage - 从 azure 存储中获取 blob,不包括子文件夹
问题描述
尝试使用 CloudBlobContainer.ListBlobs 从 Azure 存储容器中获取 blob,但我只想从特定文件夹(使用前缀)而不是主文件夹下的子文件夹中获取 blob。
例如,假设我有这个:
Folder
Sub-Folder
image2.jpg
image1.jpg
如果我使用文件夹作为前缀,我想获取 image1.jpg 并排除 image2.jpg(子文件夹下的任何内容)
解决方案
从参考
如果调用 CloudBlobContainer.listBlobs() 方法,默认情况下会返回一个 BlobItems 列表,其中包含容器下的 Blob 和目录。这是 v8 的默认行为。
即使您想匹配模式,正如@Gaurav mantri- reference所述
Azure Blob 存储中对服务器端搜索的支持有限。您唯一可以过滤的是 blob 前缀,即您可以指示 Azure 存储服务仅返回以某些字符开头的 blob 名称。
但是如果你想基于文件名获取,下面的例子可能会给出一个想法
var container = blobClient.GetContainerReference(containerName);
foreach (var file in container.ListBlobs(prefix: " Folder/filename.xml", useFlatBlobListing: true))
{ …}
在您的情况下,请尝试使用 Folder/filename.jpg。
笔记:
- useFlatBlobListing:将此值设置为 true 将确保只返回 blob(包括在该目录内的任何子文件夹内)而不是目录和 blob。
- 因此,如果您只需要 blob,则必须将 UseFlatBlobListing 属性选项设置为 true。
推荐阅读
- javascript - React - 显示和隐藏幻灯片动画
- cordova - 如何从我的 Ionic 应用程序启动 inAppBrowser?DeviceReady 上没有任何反应
- reactjs - 反应“this.props”返回未定义
- python - 从 Cython 中的基类继承方法
- c# - 将两个字典相乘
- c# - 可以通过移动物体看到镜头光晕吗?
- hibernate - JPA:命名查询数据库独立性
- c# - 当我尝试访问实体组件数据时,当我构建到我的 Iphone 时,Unity c# null 引用错误
- python - 是否有用于身份管理的 Microsoft Azure Ansible 模块?
- mongodb - 从异步 mongo.save() 获取空对象