使用 Azure 文件开发应用程序概述

本文概述了使用 Azure 文件存储进行应用程序开发,并帮助你根据应用的需求确定哪种方法最佳。

适用于

管理模型 计费模式 媒体层 冗余 中小型企业 (SMB) 网络文件系统(NFS)
Microsoft.Storage 预配 v2 HDD(标准) 本地 (LRS) 是 否
Microsoft.Storage 预配 v2 HDD(标准) 区域 (ZRS) 是 否
Microsoft.Storage 预配 v2 HDD(标准) 异地 (GRS) 是 否
Microsoft.Storage 预配 v2 HDD(标准) GeoZone (GZRS) 是 否
Microsoft.Storage 预配版本 v1 SSD(高级) 本地 (LRS) 是 是
Microsoft.Storage 预配版本 v1 SSD(高级) 区域 (ZRS) 是 是
Microsoft.Storage 即用即付 HDD(标准) 本地 (LRS) 是 否
Microsoft.Storage 即用即付 HDD(标准) 区域 (ZRS) 是 否
Microsoft.Storage 即用即付 HDD(标准) 异地 (GRS) 是 否
Microsoft.Storage 即用即付 HDD(标准) GeoZone (GZRS) 是 否

关于使用 Azure 文件进行应用开发

Azure 文件存储为开发人员提供了多种方式来访问数据和管理 Azure 文件共享中的资源。 下表列出了这些方法,总结了它们的工作方式,并提供有关何时使用每个方法的指导:

方法 工作原理 何时使用
标准文件 I/O 库 通过使用行业标准服务器消息块 (SMB) 和网络文件系统 (NFS) 协议装载的 Azure 文件共享使用操作系统级 API 调用。 使用 SMB/NFS 装载文件共享时,可以使用文件 I/O 库用于编程语言或框架,例如 System.IO 用于 .NET、osio 用于 Python、java.iojava.nio 用于 Java,以及 fs 用于 JavaScript(Node.js)。 你拥有已有代码使用标准文件 I/O 的业务线应用,并且不希望重写代码来让应用程序可以与 Azure 文件共享一起使用。
FileREST API 直接调用 HTTPS 终结点以与存储在 Azure 文件中的数据进行交互。 提供对文件共享资源的编程控制。 Azure SDK 提供基于 FileREST API 构建的客户端库,允许通过熟悉的编程语言范例与 FileREST API作进行交互。 你要为客户构建增值云服务和应用,并且想要使用无法通过本机协议提供的高级功能。
存储资源提供程序 REST API 使用 Azure 资源管理器(ARM)管理存储帐户和文件共享。 为了进行各种资源管理操作,调用REST API终结点。 应用或服务需要执行资源管理任务,例如创建、删除或更新存储帐户或文件共享。

标准文件 I/O 库

文件 I/O 库是访问和使用 Azure 文件资源的最常用方法。 使用 SMB 或 NFS 装载文件共享时,操作系统会重定向本地文件系统的 API 请求。 使用此方法,可以将标准文件 I/O 库用于首选编程语言或框架,例如 System.IO 用于 .NET、 osio Python java.iojava.nio Java 以及 JavaScript( fsNode.js)。

当你的应用需要时,请考虑使用文件 I/O 库:

  • 应用兼容性: 非常适合具有已使用标准文件 I/O 的现有代码的业务线应用。 无需为应用重写代码才能使用 Azure 文件共享。
  • 易于使用: 标准文件 I/O 库由开发人员熟知,易于使用。 Azure 文件存储的关键价值主张是通过 SMB 和 NFS 公开本机文件系统 API。

其他注意事项:

  • 网络访问: SMB 通过端口 445 进行通信,NFS 通过端口 2049 进行通信。 确保不会从客户端计算机阻止这些端口。 有关详细信息,请参阅 Azure 文件的网络注意事项

FileREST API

FileREST API 提供对 Azure 文件的编程访问。 它允许调用 HTTPS 端点来对文件共享、目录和文件执行操作。 FileREST API 旨在实现高可伸缩性和高级功能,这些功能可能无法通过本机协议使用。 Azure SDK 提供在 FileREST API 上生成的客户端库。

如果应用程序需要,请考虑使用 FileREST API 和文件共享客户端库:

  • 高级功能: 访问无法通过原生协议获得的操作和功能。
  • 自定义云集成: 生成与 Azure 文件直接交互的自定义增值服务,例如备份、防病毒或数据管理。
  • 性能优化: 在大规模场景中,通过数据平面操作享受性能优势。

FileREST API 将 Azure 文件建模为资源层次结构,建议用于在 目录文件 级别执行的作。 若要详细了解基于 FileREST API 生成的特定于语言的客户端库,请参阅 用于数据访问的库

存储资源提供程序 REST API

Azure 存储资源提供程序是基于 Azure 资源管理器的服务,支持声明性(模板)和命令性(直接 API 调用)方法。 Azure 存储资源提供程序 REST API 提供对 Azure 存储资源的编程访问,包括文件共享。 Azure SDK 提供基于 Azure 存储资源提供程序 REST API 构建的管理库。

对于在 文件服务文件共享 级别执行的作,建议使用存储资源提供程序。 若要详细了解基于 Azure 存储资源提供程序 REST API 生成的特定于语言的管理库,请参阅 用于资源管理的库

适用于 Azure 文件的 Azure SDK 库

Azure SDK 提供两组库用于处理 Azure 文件资源。 一组库在 FileREST API 上构建,旨在处理 目录文件 级别的数据访问作。 这些库有时称为 数据平面。 另一组库基于 Azure 存储资源提供程序 REST API 构建,旨在处理 文件服务文件共享 级别的资源管理作。 这些库有时称为 控制平面 (或管理平面)。

数据访问库

数据平面库旨在处理 目录文件 级别的数据访问作。 以下部分显示了适用于 .NET、Java、Python、JavaScript 和 Go 的文件共享客户端库。

下表显示了用于数据访问的文件共享客户端库:

图书馆 参考文献 程序包 来源
Azure.Storage.Files.Shares 引用 NuGet GitHub

若要详细了解如何将文件共享客户端库用于特定数据访问方案,请参阅 使用 .NET 开发 Azure 文件

资源管理库

在 Azure 存储资源提供程序 REST API 的基础上构建的控制平面库,使你能够管理 Azure 存储资源。 Azure 存储资源提供程序是基于 Azure 资源管理器的服务,支持声明性(模板)和命令性(直接 API 调用)方法。

资源管理库旨在处理 文件服务文件共享 级别的资源管理作。 若要了解有关作的详细信息,请参阅 文件服务文件共享。 以下部分显示了适用于 .NET、Java、Python、JavaScript 和 Go 的 Azure 存储管理库。

下表显示了用于资源管理的 Azure 存储客户端库:

图书馆 参考文献 程序包 来源
Azure.ResourceManager.Storage 引用 NuGet GitHub

若要详细了解如何将 Azure 存储管理库用于特定资源管理方案,请参阅适用于 .NET 的 Azure 存储管理库开发人员指南