gpt4 book ai didi

java - Azure Blob 存储 Java SDK 12 从 Blob 名称中提取文件名

转载 作者:行者123 更新时间:2023-12-02 23:36:29 25 4
gpt4 key购买 nike

假设我有这样的 blob 结构:

dir0
├── dir1
│ ├── file11
│ └── file12
├── dir2
└── dir3

列出 dir1 后包含两个文件file11 , file12listBlobsByHierarchy("dir0/dir1/")方法我得到两个 Blob blobName属性设置为dir0/dir1/file11dir0/dir1/file12 ,所以<virtual_path>/<file_name> 。没关系,但在某些时候我需要获取 <file_name>部分。

我的问题是:Azure Storage SDK 12 for Java 是否提供了获取 <file_name> 的机制? blob 名称的一部分? 我可以自己做,但很难相信 SDK 不提供此功能...也许你们知道不同的优雅方法?您通常如何处理此类事情?

对我来说有点奇怪的是 SDK 似乎不支持构建前缀或从 blob 名称获取文件名:P 我期望像 fileName 这样的东西领域 BlobItem类或buildPrefix(List<String> segments)用“/”连接路径段的方法。

最佳答案

你只需这样做:

blobName.replaceFirst("^/dir0/dir1/", "")

blob 存储中的目录不是真实的,结构是扁平的,并且只有一些考虑前缀的辅助方法。请参阅this explanation了解更多详情。

您始终可以启用hierarchical namespace (又名 Datalake Storage)在您的 blob 帐户中。这使得 blob 容器更像具有真实目录的传统文件系统。您正在使用不同的 SDK (-> docs )。以及它的DirectoryEntry对象区分 name(不带路径)和 fullName(带路径)。

关于java - Azure Blob 存储 Java SDK 12 从 Blob 名称中提取文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71006583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com