Azure Blob 存储简介
Azure Blob 存储是 Azure 的适用于云的对象存储解决方案。 Blob 存储最适合存储巨量的非结构化数据。 非结构化数据是不遵循特定数据模型或定义的数据(如文本或二进制数据)。
Blob 存储用于:
- 直接向浏览器提供图像或文档。
- 存储文件以供分布式访问。
- 对视频和音频进行流式处理。
- 向日志文件进行写入。
- 存储用于备份和还原、灾难恢复及存档的数据。
- 存储数据以供本地或 Azure 托管服务执行分析。
用户或客户端应用程序通过 HTTP/HTTPS 可以从世界任何地方访问 Blob 存储中的对象。 可以通过 Azure 存储 REST API、Azure PowerShell、Azure CLI 或 Azure 存储客户端库访问 Blob 存储中的对象。 提供了不同语言的客户端库,包括:
客户端还可以使用 SSH 文件传输协议 (SFTP) 安全地连接到 Blob 存储,并使用网络文件系统 (NFS) 3.0 协议装载 Blob 存储容器。
Blob 存储支持 Azure Data Lake storage Gen2,即 Azure 适用于云的企业大数据分析解决方案。 Azure Data Lake Storage Gen2 提供了分层文件系统以及 Blob 存储的优势,其中包括:
- 低成本分层存储
- 高可用性
- 非常一致性
- 灾难恢复功能
有关 Data Lake Storage Gen2 的详细信息,请参阅 Azure Data Lake Storage Gen2 简介。
Blob 存储提供了三种类型的资源:
- 存储帐户
- 存储帐户中的容器
- 容器中的 Blob
以下图示显示了这些资源之间的关系。
存储帐户在 Azure 中为数据提供唯一的命名空间。 存储在 Azure 存储中的每个对象都有一个地址,其中包含唯一的帐户名称。 帐户名称与 Blob 存储终结点的组合构成了存储帐户中对象的基址。
例如,如果存储帐户名为 mystorageaccount,则 Blob 存储的默认终结点为:
http://mystorageaccount.blob.core.chinacloudapi.cn
下表描述了支持用于 Blob 存储的不同类型的存储帐户:
存储帐户的类型 | 性能层 | 使用情况 |
---|---|---|
常规用途 v2 | 标准 | Blob、文件共享、队列和表的标准存储帐户类型。 对于大多数方案,建议使用 Blob 存储或其他 Azure 存储服务之一。 |
块 blob | 高级 | 块 Blob 和追加 Blob 的高级存储帐户类型。 建议用于事务率较高的方案,或用于那些使用较小对象的或需要存储延迟始终较低的方案。 详细了解高级块 Blob 帐户的工作负载... |
页 blob | 高级 | 仅适用于页 blob 的高级存储帐户类型。 详细了解高级页 Blob 帐户的工作负载... |
若要详细了解存储帐户的类型,请参阅 Azure 存储帐户概述。 有关旧版存储帐户类型的信息,请参阅旧版存储帐户类型。
若要了解如何创建存储帐户,请参阅创建存储帐户。
容器对一组 blob 进行组织,类似于文件系统中的目录。 一个存储帐户可以包含无限数量的容器,一个容器可以存储无限数量的 Blob。
容器名称必须是有效的 DNS 名称,因为它是用于对容器或其 Blob 进行寻址的唯一 URI(统一资源标识符)的一部分。 为容器命名时,请遵循以下规则:
- 容器名称的长度可以是 3 到 63 个字符。
- 容器名称必须以字母或数字开头,并且只能包含小写字母、数字和短划线 (-) 字符。
- 容器名称中不允许出现两个或更多个连续的短划线字符。
容器的 URI 类似于:
https://myaccount.blob.core.chinacloudapi.cn/mycontainer
有关命名容器的详细信息,请参阅命名和引用容器、Blob 和元数据。
Azure 存储支持三种类型的 Blob:
- 块 Blob 存储文本和二进制数据。 块 Blob 由可以分别管理的数据块构成。 块 blob 最多可存储约 190.7 TiB。
- 与块 Blob 一样,追加 Blob 也由块构成,但针对追加操作进行了优化。 追加 Blob 非常适用于诸如记录来自虚拟机的数据之类的场景。
- 页 Blob 用于存储最大 8 TiB 的随机访问文件。 页 blob 存储虚拟硬盘 (VHD) 文件并作为 Azure 虚拟机的磁盘。 有关页 Blob 的更多信息,请参阅 Azure 页 Blob 概述
有关不同类型 Blob 的详细信息,请参阅 Understanding Block Blobs, Append Blobs, and Page Blobs(了解块 Blob、追加 Blob 和页 Blob)。
blob 的 URI 类似于:
https://myaccount.blob.core.chinacloudapi.cn/mycontainer/myblob
或
https://myaccount.blob.core.chinacloudapi.cn/mycontainer/myvirtualdirectory/myblob
为容器命名时,请遵循以下规则:
- Blob 名称可以包含任何字符组合。
- 对于 Azure 存储中的 blob,blob 名称的长度必须至少为一个字符且不能超过 1,024 个字符。
- Blob 名称区分大小写。
- 必须正确地对保留的 URL 字符进行转义。
- 包含 Blob 名称的路径段的数目存在限制。 路径段是指对应于目录或虚拟目录的相邻分隔符(例如,正斜杠
/
)之间的字符串。 以下路径段限制适用于 blob 名称:- 如果存储帐户未启用分层命名空间,则构成 blob 名称的路径段数不能超过 254。
- 如果存储帐户已启用分层命名空间,则构成 Blob 名称的路径段数不能超过 63(包括容器名称和帐户主机名的路径段)。
备注
避免以点 (.)、正斜杠 (/) 或二者的序列或组合结尾的 Blob 名称。 路径段不应以点 (.) 结尾。
有关命名 blob 的详细信息,请参阅命名及引用容器、blob 和元数据。
存在许多用于将现有数据迁移到 Blob 存储的解决方案:
- AzCopy 是一种易于使用的适用于 Windows 和 Linux 的命令行工具,可以跨容器或跨存储帐户将数据复制到 Blob 存储,以及从 Blob 存储复制数据。 有关 AzCopy 的详细信息,请参阅使用 AzCopy v10 传输数据。
- Azure 存储数据移动库是一个 .NET 库,用于在 Azure 存储服务之间移动数据。 AzCopy 实用程序是使用数据移动库生成的。 有关详细信息,请参阅数据移动库的参考文档。
- Azure 数据工厂支持使用 Azure 资源的帐户密钥、共享访问签名、服务主体或托管标识向/从 Blob 存储复制数据。 有关详细信息,请参阅使用 Azure 数据工厂向/从 Azure Blob 存储复制数据。
- Blobfuse 是 Azure Blob 存储的虚拟文件系统驱动程序。 可以使用 BlobFuse 通过 Linux 文件系统访问存储帐户中的现有块 Blob 数据。 有关详细信息,请参阅什么是 BlobFuse?- BlobFuse2(预览版)。
- 如果大型数据集或网络限制导致通过网络上传数据不可行,Azure Data Box 服务可将本地数据传输到 Blob 存储。 你可以根据你的数据大小从世纪互联请求 Azure Data Box Disk 设备。 然后,你可以将数据复制到这些设备中,将设备寄回世纪互联,以便将数据上传到 Blob 存储中。
- Azure 导入/导出服务提供了一种使用你提供的硬盘向存储帐户导入或从存储帐户导出大量数据的方法。 有关详细信息,请转到什么是 Azure 导入/导出服务?。