共用方式為


開始使用 Azure Blob 儲存體和 Go

本文說明如何使用適用於 Go 的 Azure Blob 儲存體用戶端模組來連線至 Azure Blob 儲存體。 連線之後,您的程式碼就可以在 Blob 儲存體服務的容器、Blob 和功能上運作。

API 參考文件 | 程式庫原始程式碼 | 套件 (pkg.go.dev)

必要條件

設定您的專案

本節會引導您準備專案以搭配使用適用於 Go 的 Azure Blob 儲存體用戶端模組。

從您的 GOPATH,使用下列命令安裝 azblob 模組:

go get github.com/Azure/azure-sdk-for-go/sdk/storage/azblob

若要使用 Microsoft Entra ID 進行驗證 (建議使用),請使用下列命令安裝 azidentity 模組:

go get github.com/Azure/azure-sdk-for-go/sdk/azidentity

然後開啟程式碼檔案,並新增必要的匯入路徑。 在此範例中,我們會將下列內容新增至 go 檔案:

import (
    "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
    "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
)

Blob 用戶端模組資訊:

  • azblob:包含可用來在服務、容器和 Blob 上操作的方法。

授權存取權並連線到 Blob 儲存體

若要將應用程式連線至 Blob 記憶體,請使用 azblob.NewClient 建立用戶端物件。 此物件是您與儲存體帳戶層級的資料資源互動的起點。 您可以使用它來操作儲存體帳戶及其容器。

若要深入了解如何建立和管理客戶端物件,包括最佳做法,請參閱 建立和管理與資料資源互動的客戶端物件

您可以使用 Microsoft Entra 授權權杖 (建議)、帳戶存取密鑰或共用存取簽章 (SAS) 來授權用戶端物件。

若要使用 Microsoft Entra ID 進行授權,您必須使用 安全性主體。 下列文章提供不同驗證案例的指導:

使用 DefaultAzureCredential 授權存取

授權存取權並連線到 Blob 儲存體簡單又安全的方式,是藉由建立 DefaultAzureCredential 執行個體來取得 OAuth 權杖。 然後,您可以使用該認證,使用 azblob.NewClient 建立用戶端物件。

func getServiceClientTokenCredential(accountURL string) *azblob.Client {
    // Create a new service client with token credential
    credential, err := azidentity.NewDefaultAzureCredential(nil)
    handleError(err)

    client, err := azblob.NewClient(accountURL, credential, nil)
    handleError(err)

    return client
}

建置應用程式

當您建置應用程式以在 Azure Blob 儲存體 中使用資料資源時,您的程式代碼主要會與三種資源類型互動:記憶體帳戶、容器和 Blob。 若要深入了解這些資源類型、彼此的關係,以及應用程式如何與資源互動,請參閱了解應用程式如何與 Blob 儲存體資料資源互動

下列指南說明如何使用適用於 Go 的 Azure Blob 儲存體 用戶端模組來存取資料並執行特定動作:

指南 描述
設定重試原則 實作用戶端作業的重試原則。
複製 Blob 將 Blob 從一個位置複製到另一個位置。
建立容器 建立容器。
刪除和還原 Blob 刪除 Blob 和 (如果已啟用虛刪除) 還原已刪除的 Blob。
刪除和還原容器 刪除容器和 (如果已啟用虛刪除) 還原已刪除的容器。
下載 Blob 使用字串、串流和檔案路徑來下載 Blob。
使用標籤來尋找 Blob 設定和擷取標籤,以及使用標籤來尋找 Blob。
列出 Blob 以各種方式列出 Blob。
列出容器 列出帳戶中的容器,以及可用來自訂清單的各種選項。
管理屬性和中繼資料 (Blob) 管理容器屬性和中繼資料。
管理屬性和中繼資料 (容器) 管理容器屬性和中繼資料。
上傳 Blob 了解如何使用字串、串流、檔案路徑和其他方法來上傳 Blob。

注意

本指南中的程式碼範例旨在協助您開始使用 Azure Blob 儲存體和 Go。 您應該修改錯誤處理和 Context 值,以符合您應用程式的需求。