使用 Go 建立 Blob 容器
本文說明如何使用適用於 Go 的 Azure 儲存體用戶端模組 (英文) 來建立容器。 Azure 儲存體中的 Blob 會組織成容器。 在您可以上傳 Blob 之前,您必須先建立一個容器。
必要條件
設定您的環境
如果沒有現有的專案,本節說明如何設定專案以使用適用於 Go 的 Azure Blob 儲存體用戶端模組。 這些步驟包括模組安裝、新增 import
路徑,以及建立已授權的用戶端物件。 如需詳細資訊,請參閱開始使用 Azure Blob 儲存體和 Go。
安裝模組
使用下列命令安裝 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
新增匯入路徑
在您的程式碼檔案中,新增下列匯入路徑:
import (
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)
這些匯入路徑代表開始使用所需的最小值。 本文中的某些程式碼範例可能需要其他匯入路徑。 如需特定詳細資料和範例使用方式,請參閱程式碼範例。
建立用戶端物件
若要將應用程式連線至 Blob 記憶體,請使用 azblob.NewClient 建立用戶端物件。 下列範例示範如何使用 DefaultAzureCredential
來建立用戶端物件以進行授權:
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
}
授權
授權機制必須具有建立容器的必要權限。 如需使用 Microsoft Entra ID 授權 (建議使用),您需要 Azure RBAC 內建角色儲存體 Blob 資料參與者或更高權限。 若要深入了解,請參閱建立容器 (REST API) 的授權指導。
關於容器命名
容器名稱必須是有效的 DNS 名稱,因為它會形成用來定址容器或其 blob 的唯一 URI 的一部分。 命名容器時,請遵循下列規則:
- 容器名稱長度可介於 3 到 63 個字元之間。
- 容器名稱必須以字母或數字開頭,而且只能包含小寫字母、數字和虛線 (-) 字元。
- 容器名稱中不允許連續的虛線字元。
容器資源的 URI 格式如下:
https://my-account-name.blob.core.windows.net/my-container-name
建立容器
若要建立容器,請呼叫下列方法:
容器會在儲存體帳戶下方直接建立。 您無法將某個容器巢於另一個容器下方。 如果已經有相同名稱的容器存在,則會擲回例外狀況。
下列範例說明如何建立容器:
func createContainer(client *azblob.Client, containerName string) {
// Create a container
_, err := client.CreateContainer(context.TODO(), containerName, nil)
handleError(err)
}
建立根容器
根容器會做為儲存體帳戶的預設容器。 每個儲存體帳戶可以有一個根容器,必須命名為 $root。 根容器必須明確建立或刪除。
您可以參考儲存在根容器中的 Blob,而不包含根容器名稱。 根容器可讓您參考儲存體帳戶階層最上層的 blob。 例如,您可以依照下述方式參考位於根容器中的 Blob:
https://<storage-account-name>.blob.core.windows.net/default.html
如果記憶體帳戶中沒有容器,則下列範例會建立容器:
func createRootContainer(client *azblob.Client) {
// Create root container
_, err := client.CreateContainer(context.TODO(), "$root", nil)
handleError(err)
}
注意
本指南中的程式碼範例旨在協助您開始使用 Azure Blob 儲存體和 Go。 您應該修改錯誤處理和 Context
值,以符合您應用程式的需求。
資源
若要深入了解如何使用適用於 Go 的 Azure Blob 儲存體用戶端模組建立容器,請參閱下列資源。
程式碼範例
- 檢視本文中的程式碼範例 (GitHub)
REST API 操作
適用於 Go 的 Azure SDK 包含建置在 Azure REST API 之上的程式庫,可讓您透過熟悉的 Go 典範與 REST API 作業進行互動。 用來建立容器的用戶端程式庫方法會使用下列 REST API 作業:
- 建立容器 (REST API)
用戶端模組資源
相關內容
- 本文是適用於 Go 的 Blob 儲存體開發人員指南的一部分。 若要深入了解,請參閱位於建置 Go 應用程式的完整開發人員指南文章清單。