无法在Azure blob存储$ root容器中创建文件夹

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在Azure blob存储$ root容器中创建文件夹相关的知识,希望对你有一定的参考价值。

Azure存储允许使用名为$ root的默认容器。如in the documentation所述

使用Azure门户。当我尝试将脚本文件夹上传到我的$ root容器时,我收到错误

upload error for validate-form.js
Upload block blob to blob store failed:
Make sure blob store SAS uri is valid and permission has not expired. 
Make sure CORS policy on blob store is set correctly. 
StatusCode = 0, StatusText = error

我该如何解决?

我可以上传到不叫$ root enter image description here的容器

[更新]

我想SAS意味着共享访问签名。我用Blob设置容器(仅对blob进行匿名读访问)我将尝试Container(对容器和blob的匿名读访问)

[更新]

更改访问策略没有任何区别。 $ root enter image description here不显示访问策略

我知道必须将文件放在新文件夹中才能创建文件夹。这不是那个问题。

[更新]

这是我的网站blob的样子。我可以为我的网站容器做这个,但不是我的$ root容器。

enter image description here

答案

正如Create a container所述:

  • 容器名称必须以字母或数字开头,并且只能包含字母,数字和短划线( - )字符。
  • 每个短划线( - )字符必须紧跟在前面,后面跟一个字母或数字;容器名称中不允许使用连续短划线。
  • 容器名称中的所有字母必须为小写。
  • 容器名称长度必须为3到63个字符。

AFAIK,当通过Azure Storage Client Library管理你的blob存储时,我们无法创建名为$root的容器。此外,您可以利用Azure Storage Explorer来管理您的存储资源,我认为应用了为blob容器创建名称的限制。

但是我在azure portal上测试了它,发现我可能会遇到你提到的同样的问题。我可以创建名为$root的容器。我可以通过Azure门户和Azure存储资源管理器将文件上传到根虚拟目录。我假设容器名称以$开头是由Azure保留的,我们无法创建它。并且您需要遵循容器名称的限制,然后您可以像往常一样上传文件。用于创建容器名称的天蓝色门户网站上的行为以$开头并不常见。您可以发送您的反馈here

更新:

正如你提到的Working with the Root Container

根容器中的Blob名称中不能包含正斜杠(/)。

因此,您无法在根容器下创建虚拟文件夹作为普通blob容器。

例如:https://myaccount.blob.core.windows.net/$root/virtual-directory/myblob,blob名称将是virtual-directory/myblob,但它无效,你无法创建它。

UPDATE2:

您是否能够在$ root容器中创建文件夹?如果是这样,你能告诉我如何取悦。

我们无法在$root容器中创建文件夹,因为根容器具​​有blob名称的限制。您无法将azure blob存储视为文件系统,文件夹信息属于blob名称,如下所示:

enter image description here

enter image description here

以上是关于无法在Azure blob存储$ root容器中创建文件夹的主要内容,如果未能解决你的问题,请参考以下文章

Azure 门户在存储帐户中创建 Blob 容器时出错

Microsoft Azure:如何在 blob 容器中创建子目录

在 Azure Blob 容器中创建两个文件时,如何在 Azure 数据工厂中创建事件触发器?

无法从在存储帐户的允许子网中创建的 Azure 虚拟机下载 blob

通过 C# Azure 函数生成 Blob 容器

列出 Azure 存储容器中的 Blob,包括元数据