导出 (0) 打印
全部展开

命名和引用容器、Blob 和元数据

更新时间: 2014年7月

本主题介绍了如何命名和引用容器、Blob、元数据和快照。存储帐户可包含零个或多个容器。容器包含属性、元数据以及零个或多个 Blob。Blob 是由二进制数据、属性和元数据组成的任一实体。

引用容器或 Blob 的 URI 必须是唯一的。由于每个帐户名称都是唯一的,因此两个帐户可具有同名容器。但是,在给定的存储帐户中,每个容器均必须具有一个唯一名称。此外,给定容器中的每个 Blob 必须在该容器中拥有一个唯一名称。

如果您尝试使用违反命名规则的名称创建容器或 Blob,则请求将失败,状态代码为 400(错误的请求)。

Important重要提示
Blob 和容器名称将传递给 URL 中的 BLOB 服务。某些字符必须使用 UTF-8(首选)或 MBCS 以百分比编码形式出现在 URL 中。当您使用 Azure .NET 库或构造包含 Blob 或容器名称的 Uri 对象时,此编码将自动进行。但是,即使经过编码,还是有一些字符在 URL 路径中无效。这些字符不能出现在 Blob 或容器名称中。像 \uE000 这样的码位虽然在 NTFS 文件名中有效,但不是有效的 Unicode 字符,因此无法使用。此外,也不允许使用某些 ASCII 或 Unicode 字符,如控制字符(0x00 到 0x1F、\u0081 等)。有关管理 HTTP/1.1 中的 Unicode 字符串的规则,请参见:

容器名称必须是有效的 DNS 名称且符合以下命名规则:

  1. 容器名称必须以字母或数字开头且只能包含字母、数字和短划线 (-) 字符。

  2. 每个短划线 (-) 字符前后必须紧跟字母或数字;容器名称中不允许使用连续划线。

  3. 容器名称中的所有字母必须为小写。

  4. 容器名称的长度必须为 3 到 63 个字符。

Blob 名称必须符合以下命名规则:

  • Blob 名称可以包含任何字符组合。

  • Blob 名称的长度必须至少为 1 个字符,且不能超过 1,024 个字符。

  • Blob 名称区分大小写。

  • 保留的 URL 字符必须适当地转义。

  • 组成 Blob 名称的路径段数目不能超过 254 个。路径段是与虚拟目录名称对应的字符串,中间是连续的分隔符(例如正斜杠“/”)。

note备注
避免以点 (.)、正斜杠 (/) 或二者的序列或组合结尾的 Blob 名称。

BLOB 服务基于平面存储方案而不是分层方案。但是,可以在 Blob 名称中指定字符或字符串分隔符来创建虚拟层次结构。例如,以下列表显示了有效的唯一 Blob 名称。请注意,在同一容器中,作为 Blob 名称和虚拟目录名称的字符串是有效的:

  • /a

  • /a.txt

  • /a/b

  • /a/b.txt

枚举 Blob 时可使用分隔符。

容器或 Blob 资源的元数据将存储为与该资源关联的名称值对。元数据名称必须遵循 C# 标识符的命名规则。

请注意,元数据名称保留在创建时具有的大小写形式,但在设置或读取时不区分大小写。如果为资源提交两个或多个具有相同名称的元数据标头,Blob 服务将返回状态代码 400(错误的请求)。

每个资源均具有一个对应的基本 URI,它指的是资源本身。

对于存储帐户,基本 URI 仅包含帐户的名称:

https://myaccount.blob.core.windows.net

对于容器,基本 URI 包含帐户名称和容器名称:

https://myaccount.blob.core.windows.net/mycontainer

对于 Blob,基本 URI 包含帐户名称、容器名称和 Blob 名称:

https://myaccount.blob.core.windows.net/mycontainer/myblob

存储帐户可具有根容器(它是可从 URI 中忽略的默认容器)。可以在不命名容器的情况下引用根容器中的 Blob,也可以按根容器的名称 ($root) 显式引用它。有关更多信息,请参见使用根容器。以下 URI 指根容器中的 Blob:

 https://myaccount.blob.core.windows.net/myblob https://myaccount.blob.core.windows.net/$root/myblob 

快照是指 Blob 在创建快照时所存储的状态的只读版本。可以使用快照创建 Blob 的备份或检查点。快照 Blob 名称包含基本 Blob URI 和日期时间值,该值指示快照的创建时间。

例如,假设 Blob 具有以下 URI:

https://myaccount.blob.core.windows.net/mycontainer/myblob

该 Blob 的快照 URI 的格式如下所示:

https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

CloudBlob 设置为 ListBlobs 的情况下调用 BlobListingDetails 时,.NET 客户端库可将快照作为 Snapshots 对象列出。

另请参阅

显示:
© 2015 Microsoft