本文提供使用 Azure 檔案服務開發應用程式的概觀,並協助您根據應用程式的需求來決定最適合的方法。
適用對象
管理模型 | 計費模型 | 媒體層級 | 冗餘 | 中小企業 (SMB) | 網路檔案系統 (NFS) |
---|---|---|---|---|---|
Microsoft 儲存服務 | 已佈建的 v2 | HDD (標準) | 本地 (LRS) |
![]() |
![]() |
Microsoft 儲存服務 | 已佈建的 v2 | HDD (標準) | 區域 (ZRS) |
![]() |
![]() |
Microsoft 儲存服務 | 已佈建的 v2 | HDD (標準) | 異地 (GRS) |
![]() |
![]() |
Microsoft 儲存服務 | 已佈建的 v2 | HDD (標準) | GeoZone (GZRS) |
![]() |
![]() |
Microsoft 儲存服務 | 已佈建的 v1 | SSD (進階版) | 本地 (LRS) |
![]() |
![]() |
Microsoft 儲存服務 | 已佈建的 v1 | SSD (進階版) | 區域 (ZRS) |
![]() |
![]() |
Microsoft 儲存服務 | 隨用隨付 | HDD (標準) | 本地 (LRS) |
![]() |
![]() |
Microsoft 儲存服務 | 隨用隨付 | HDD (標準) | 區域 (ZRS) |
![]() |
![]() |
Microsoft 儲存服務 | 隨用隨付 | HDD (標準) | 異地 (GRS) |
![]() |
![]() |
Microsoft 儲存服務 | 隨用隨付 | HDD (標準) | GeoZone (GZRS) |
![]() |
![]() |
關於使用 Azure 檔案服務開發應用程式
Azure 檔案記憶體提供數種方式,讓開發人員存取數據及管理 Azure 檔案共用中的資源。 下表列出這些方法、摘要說明其運作方式,並提供使用每個方法時機的指引:
方法 | 運作方式 | 使用時機 |
---|---|---|
標準檔案 I/O 連結庫 | 透過使用業界標準伺服器訊息區 (SMB) 和網路檔案系統 (NFS) 通訊協定掛接的 Azure 檔案共用,使用作業系統層級 API 呼叫。 當您使用 SMB/NFS 掛接檔案共享時,您可以使用程式設計語言或框架的檔案 I/O 函式庫,例如 System.IO 用於 .NET,os 和 io 用於 Python,java.io 和 java.nio 用於 Java,或 fs 用於 JavaScript(Node.js)。 |
您有具有使用標準檔案 I/O 之現有程式代碼的企業營運應用程式,而且您不想要重寫程式代碼,讓應用程式使用 Azure 檔案共用。 |
FileREST API | 直接呼叫 HTTPS 端點,以與儲存在 Azure 檔案服務中的數據互動。 提供檔案共用資源的程序設計控制。 Azure SDK 提供建置在 FileREST API 上的用戶端連結庫,可讓您透過熟悉的程式設計語言範例與 FileREST API 作業互動。 | 您正在為客戶建置增值的雲端服務和應用程式,而且想要使用無法透過原生通訊協定提供的進階功能。 |
記憶體資源提供者 REST API | 使用 Azure Resource Manager (ARM) 來管理記憶體帳戶和檔案共用。 針對各種資源管理作業呼叫 REST API 端點。 | 您的應用程式或服務必須執行資源管理工作,例如建立、刪除或更新記憶體帳戶或檔案共用。 |
標準檔案輸入/輸出函式庫
檔案 I/O 連結庫是存取和使用 Azure 檔案服務資源最常見的方式。 當您使用 SMB 或 NFS 掛接檔案共用時,作業系統會重新導向對本機檔案系統的 API 要求。 此方法可讓您針對慣用的程式設計語言或架構使用標準檔案 I/O 連結庫,例如 System.IO
.NET、 os
Python 和 io
java.io
Java,java.nio
或 fs
JavaScript(Node.js)。
當您的應用程式需要時,請考慮使用檔案 I/O 連結庫:
- 應用程式相容性: 適用於已使用標準檔案 I/O 的現有程式代碼的企業營運應用程式。 您不需要重寫程式代碼,應用程式即可使用 Azure 檔案共用。
- 易於使用: 標準檔案 I/O 連結庫是由開發人員所熟知,而且容易使用。 Azure 檔案服務的重要價值主張是,它會透過 SMB 和 NFS 公開原生文件系統 API。
其他考量:
- 網路存取: SMB 會透過埠 445 進行通訊,而 NFS 會透過埠 2049 進行通訊。 請確定不會從用戶端電腦封鎖這些埠。 如需詳細資訊,請參閱 Azure Files 的網路注意事項。
FileREST API
FileREST API 可讓您以程式設計方式存取 Azure 檔案服務。 它可讓您呼叫 HTTPS 端點,以在檔案共享、目錄和檔案上執行作業。 FileREST API 是針對可能無法透過原生通訊協定使用的高延展性和進階功能所設計。 Azure SDK 提供建置在 FileREST API 上的用戶端連結庫。
如果您的應用程式需要,請考慮使用 FileREST API 和檔案共用用戶端連結庫:
- 進階功能: 存取無法透過原生通訊協定使用的各項操作與功能。
- 自定義雲端整合: 建置與 Azure 檔案服務直接互動的自定義增值服務,例如備份、防病毒軟體或數據管理。
- 效能優化: 使用資料平面操作,在大規模情境中受益於效能優勢。
FileREST API 會將 Azure 檔案服務模型為資源階層,並建議用於在 目錄 或 檔案 層級執行的作業。 若要深入瞭解建置在 FileREST API 上的特定語言用戶端連結庫,請參閱 數據存取連結庫。
記憶體資源提供者 REST API
Azure 記憶體資源提供者是以 Azure Resource Manager 為基礎的服務,同時支援宣告式(範本)和命令式(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 Resource Manager 為基礎的服務,同時支援宣告式(範本)和命令式(API 呼叫)方法。
資源管理連結庫的設計目的是在 檔案服務 或 檔案共享 層級處理資源管理作業。 若要深入瞭解作業,請參閱 檔案服務 或 檔案共用。 下列各節顯示適用於 .NET、Java、Python、JavaScript 和 Go 的 Azure 記憶體管理連結庫。
下表會顯示用於資源管理的 Azure 儲存體用戶端程式庫:
圖書館 | 參考文獻 | 套件/包裹 | 來源 |
---|---|---|---|
Azure.ResourceManager.Storage | 參考 | NuGet | GitHub的 |
若要深入了解針對特定資源管理案例使用 Azure 儲存體管理程式庫,請參閱 .NET 的 Azure 儲存體管理程式庫開發人員指南。