当前位置: 首页 > 知识库问答 >
问题:

Azure Blob容器名称可以有多长?

巫马劲
2023-03-14

我已经读到azure blob存储容器名称的长度必须最多为63个字符(请参阅 https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/naming-and-referencing-containers--blobs--and-metadata),但在阅读本文之前,我正在测试比这更长的容器名称,因此尝试了更长的时间:

        CloudStorageAccount storageAccount = CloudStorageAccount.Parse("YourKey");
        CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
        CloudBlobContainer container = blobClient.GetContainerReference(@"mystorage\A2345678901234567890B234567890C2345678901234567890D234567890E234567890F23456789G234567890\AA345678901234567890B234567890C2345678901234567890D234567890E234567890F23456789G234567890");
        CloudBlockBlob blockBlob = container.GetBlockBlobReference(@"blob.txt");

这似乎很好(注意大写字母,也应该是不允许的)。我还使用Microsoft Azure Storage Explorer(v0.8.9)打开使用C#创建的文件夹和文件,并在blob存储中创建更长的文件夹名(混合大小写)。

在现实生活中,我想让容器达到大约100个字符(复制一个Windows文件结构,有五层文件夹,子文件夹名达到20个字符。如果有必要,我可以强迫这些小写。我读到的大部分内容似乎表明blob存储比文件存储更好,除非处理遗留系统或需要SMB。基于这种推理,blob存储听起来是更好的选择,在测试时一切似乎都很好。然而,微软会突然强加小写字母和63个字符的限制吗?我还遗漏了什么吗?

共有1个答案

聂鹏云
2023-03-14

因此,容器名称的最大长度可以为 63 个字符。代码中未出现任何错误的原因是,此限制是在服务器端强制执行的。当您使用以下代码创建 CloudBlobContainer 的实例时:

CloudBlobContainer container = blobClient.GetContainerReference(@"mystorage\A2345678901234567890B234567890C2345678901234567890D234567890E234567890F23456789G234567890\AA345678901234567890B234567890C2345678901234567890D234567890E234567890F23456789G234567890");

这发生在客户端。如果您尝试对此容器对象执行任何服务器端操作(例如创建该容器),您将收到错误,因为您违反了此63个字符的限制。

您可以将容器视为Blob存储帐户中的顶级文件夹。打个比方,如果您将计算机上的C:\视为存储帐户,那么容器可能是windows。现在每个容器可以有零个或更多个blob,为了产生层次结构的错觉,您可以将blob命名为光标\aero_arrow.cur。命名blob时,您可以有超过63个字符。但是,由于每个blob都可以通过URL(https://accountname.blob.core.windows.net/containername/blobname)访问,因此最大长度受到URL中最大字符的限制,我认为该URL为1024个字符。

 类似资料:
  • 问题内容: 我想显示所有正在运行的容器的状态,因此可以像下面这样实现: docker stats $ {docker ps -q) 但列容器仅显示容器ID。我需要容器名称。例如: 码头工人统计lrlcms_web_1 那么,如何获得所有容器名称?只为: docker stats`所有容器的名称’ 例如: 码头工人统计lrlcms_db_1 lrlcms_redis_1 问题答案: 或者,使用普通的

  • 这个命令给出了运行容器ID的列表: 是否有获取容器名称列表的命令?

  • 问题内容: 从容器名称获取docker容器ID的命令是什么? 问题答案: 在Linux中: 或在OS X,Windows中: 您的容器名称在哪里。 如@llia Sidorenko所述,为避免产生误报,您可以使用正则表达式锚点,如下所示: 说明: 为了安静。仅输出ID 对所有人。即使您的容器未运行也能正常工作 用于过滤器。 容器名称必须以该字符串 开头 容器名称必须 结束 这个字符串

  • 从容器名称中获取Docker容器id的命令是什么?

  • 问题内容: 我将jquery,JSON和AJAX用于注释系统。我很好奇,可以通过JSON发送/存储的内容是否有大小限制?就像用户输入大量内容并通过JSON发送一样,是否存在某种最大限制? 也可以通过JSON发送任何类型的文本。例如,有时我允许用户使用html,这样可以吗? 问题答案: JSON与其他数据格式(如XML)相似- 如果您需要传输更多数据,则只需发送更多数据。JSON请求没有固有的大小限

  • 问题内容: 我在这里遇到一种情况,试图充当两个API之间的网关。我需要做的是: 向APIa提出请求; 将XML响应解析(编组)为java对象; 对其进行很少的更改; 然后以XML(解组)形式向另一端(APIb)做出响应。 事实是,我使用同一对象来解析API响应并将响应发送到另一端。 正如评论所说:我收到但我需要发送 有没有一种方法可以完成此操作而不必创建另一个带有ResultCode的额外类? 提