假设我的蔚蓝存储帐户中有以下文件结构。
container-1
directory-1
file-1-1.csv
file-1-2.json
file-1-3.jpeg
directory-2
file-2-1.csv
file-1.csv
file-2.csv
container-2
directory-1
directory-1-1
file1-1-1.csv我只想列出容器-1中的文件(file-1.csv,file-2. not ),而没有任何其他结果--有什么方法可以提出这样的请求。
目前,我使用的URL是:
https://${account}.blob.core.windows.net/container-1?comp=list&restype=container&prefix=/返回:
directory-1
directory-1/file-1-1.csv
directory-1/file-1-2.json
directory-1/file-1-3.jpeg
directory-2
directory-2/file-2-1.csv
file-1.csv
file-2.csv我只需要:
file-1.csv
file-2.csv发布于 2022-01-12 13:01:28
使用不可能只列出Blob。那里有非常有限的服务器端过滤支持,而仅仅列出blobs并不是其中之一。
一种“黑客”的方法是通过前缀过滤气泡。假设容器级别的所有文件都以一些预定义的字符(例如file)开始,并且在该级别上没有虚拟目录从这些字符开始,那么您可以指定file作为前缀,然后REST将只返回以这些字符开头的blobs名称。
发布于 2022-01-12 13:23:54
您可以向Azure发出一个List Blobs请求。在该请求中,可以在querystring中指定分隔符。使用分隔符/。
这将导致结果列出在请求根目录中使用XML <Blob>元素的所有blobs。所有不在搜索根目录中的blobs都将出现在带有文件夹名的<BlobPrefix>元素下。丢弃所有<BlobPrefix>元素,只剩下(另一个)“文件夹”中不包含的blobs。
https://stackoverflow.com/questions/70680178
复制相似问题