如何在 Azure Blob 存储中创建空文件夹

8
如何在Azure Blob存储中创建空文件夹,就像在工具“Azure Explorer”中创建空文件夹一样。
5个回答

17

从技术上讲,在Azure Blob Storage中,您无法拥有一个空文件夹,因为Blob存储具有两层次结构 - Blob容器和Blob。您可以通过在文件名前缀中加入所需的文件夹名称来创建文件夹的幻象,例如假设您想要在css 文件夹中拥有样式表(比如site.css),请将样式表文件命名为 css/site.css

一些工具所做的是为了创建一个空文件夹,他们会创建一个零字节的Blob,并将其前缀与文件夹名称相同,然后不显示该零字节Blob。如果您需要,您也可以这样做。


非常感谢,我也尝试创建一个零字节的 blob,但是我不知道如何隐藏这个文件。 - Dragon
所以你实际上不能隐藏Blob。你所做的是,在列出Blob时,从Blob列表中删除该Blob并显示其他Blob。但请记住,如果其他人试图通过其他工具访问您的Blob存储,则他们将能够看到此Blob。 - Gaurav Mantri
1
好的答案。一些工具使用$$$.$$$作为空白blob的约定。请参见http://stackoverflow.com/questions/10445830/why-does-a-blob-with-filename-appear-in-azure-directory-listing。 - Murray Foxcroft

3

以下是在Linux中完成此操作的一种方式。

az storage blob upload --container-name <container name> --name <folder name> -f /dev/null --account-name <storage account name>
  • 文件名以斜杠结尾 (例如:myfolder/)
  • CLI 需要一个文件,因此只需上传空文件 (即:/dev/null/)

0
上传一个空文件到你想创建的目录中,然后将其删除,这对我来说有效。

0

Gaurav的观点很好理解。

但在实践中,当在bash中使用cli时,我发现如果你尝试“创建”的子目录不存在,你就不能像通常一样重命名文件(使用mv)。

但是你可以使用
hdfs dfs -mkdir -p wasb://container-name@account-name.blob.core.windows.net/sub-dir-name

然后使用
hdfs dfs -mv wasb://container-name@account-name.blob.core.windows.net/file-name wasb://container-name@account-name.blob.core.windows.net/sub-dir-name/file-name


0

2
欢迎提供解决方案的链接,但请确保您的回答在没有链接的情况下也是有用的:在链接周围添加上下文,以便其他用户了解它是什么以及为什么会在那里,然后引用您链接的页面中最相关的部分,以防目标页面不可用。仅包含链接的答案可能会被删除。 - Sabito stands with Ukraine
该链接现在返回404(页面未找到)。 - awj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接