Azure Blob 存储是适用于云的 Azure 对象存储解决方案。 Blob 存储最适合存储巨量的非结构化数据。 非结构化数据是不遵循特定数据模型或定义的数据(如文本或二进制数据)。
关于 Blob 存储
Blob 存储是为以下用途而设计:
- 直接向浏览器提供图像或文档。
- 存储文件以供分布式访问。
- 视频和音频流媒体。
- 写入日志文件。
- 存储用于备份和还原、灾难恢复及存档的数据。
- 存储数据以供本地或 Azure 托管服务执行分析。
用户或客户端应用程序可以通过 HTTP 或 HTTPS 从世界上任何地方访问Blob 存储中的对象。 可以通过 Azure 存储 REST API、Azure PowerShell、Azure CLI 或Azure 存储客户端库访问Blob 存储中的对象。 客户端库适用于不同的语言,包括:
客户端还可以使用 SSH 文件传输协议 (SFTP) 安全地连接到 Blob 存储,并使用网络文件系统 (NFS) 3.0 协议装载 Blob 存储容器。
关于 Azure Data Lake Storage
Blob 存储支持云Azure的企业大数据分析解决方案Azure Data Lake Storage。 Azure Data Lake Storage 提供了分层文件系统以及 Blob 存储 的优势,包括:
- 低成本分层存储
- 高可用性
- 强一致性
- 灾难恢复功能
有关Data Lake Storage的更多信息,请参见《Azure Data Lake Storage简介》。
Blob 存储资源
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 和元数据。
blob
Azure 存储支持三种类型的 Blob:
- 块 Blob 存储文本和二进制数据。 块 Blob 由可以单独管理的数据块组成。 块 blob 最多可以存储 190.7 TiB。
- 追加 Blob 与块 Blob 一样由块组成,但它们针对追加操作进行了优化。 追加 Blob 非常适用于记录虚拟机数据等场景。
- 页 Blob 存储大小可达 8 TiB 的随机访问文件。 页面 Blob 存储虚拟硬盘 (VHD) 文件,并用作 Azure 虚拟机的磁盘。 有关页 Blob 的详细信息,请参阅Azure 页 Blob 概述。
有关不同类型的 Blob 的详细信息,请参阅 了解块 Blob、追加 Blob 和页 Blob。
Blob 的 URI 类似于:
https://myaccount.blob.core.chinacloudapi.cn/mycontainer/myblob
或
https://myaccount.blob.core.chinacloudapi.cn/mycontainer/myvirtualdirectory/myblob
命名 Blob 时,请遵循以下规则:
- Blob 名称可以包含任意字符组合。
- 对于Azure 存储中的 blob,blob 名称必须至少为一个字符长,且长度不能超过 1,024 个字符。
- Blob 名称区分大小写。
- 必须正确地对保留的 URL 字符进行转义。
- 包含 Blob 名称的路径段数存在限制。 路径段是连续分隔符(例如正斜杠
/)之间的字符串,对应于目录或虚拟目录。 对 Blob 名称,以下是路径段限制:- 如果存储帐户 未 启用分层命名空间,则构成 Blob 名称的路径段数不能超过 254。
- 如果存储帐户已启用分层命名空间,则构成 Blob 名称的路径段数不能超过 63(包括容器名称和帐户主机名的路径段)。
注释
避免使用以点(.)、正斜杠(/)或两者组合或序列结尾的 blob 名称。 路径段不应以点 (.) 结尾。
有关命名 Blob 的详细信息,请参阅 命名和引用容器、Blob 和元数据。
将数据移到 Blob 存储
存在许多用于将现有数据迁移到 Blob 存储的解决方案:
- AzCopy 是适用于 Windows 和 Linux 的易于使用的命令行工具,可将数据复制到 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 导入/导出服务?