Megosztás a következőn keresztül:


Blobtárolók listázása a Go használatával

Ha egy Azure Storage-fiókban lévő tárolókat listáz a kódból, több lehetőséget is megadhat az eredmények Azure Storage-ból való visszaadására. Ez a cikk bemutatja, hogyan listázhatja a tárolókat a Go-hoz készült Azure Storage-ügyfélmodullal.

Előfeltételek

Saját környezet beállítása

Ha nem rendelkezik meglévő projekttel, ez a szakasz bemutatja, hogyan állíthat be egy projektet a Go Azure Blob Storage-ügyfélmoduljának használatára. A lépések közé tartozik a modul telepítése, az elérési utak hozzáadása import és egy engedélyezett ügyfélobjektum létrehozása. További részletekért tekintse meg az Azure Blob Storage és a Go használatának első lépéseit.

Modulok telepítése

Telepítse az azblob modult a következő paranccsal:

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

A Microsoft Entra-azonosítóval való hitelesítéshez (ajánlott) telepítse a azidentity modult a következő paranccsal:

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

Importálási útvonalak hozzáadása

A kódfájlban adja hozzá a következő importálási útvonalakat:

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

A cikkben szereplő néhány példakód további importálási útvonalakat igényelhet. További részletekért és példahasználatért tekintse meg a kódmintákat.

Ügyfélobjektum létrehozása

Ha egy alkalmazást a Blob Storage-hoz szeretne csatlakoztatni, hozzon létre egy ügyfélobjektumot az azblob használatával . NewClient. Az alábbi példa bemutatja, hogyan hozhat létre ügyfélobjektumot DefaultAzureCredential engedélyezés céljából:

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
}

Engedélyezés

Az engedélyezési mechanizmusnak rendelkeznie kell a blobtárolók listázásához szükséges engedélyekkel. A Microsoft Entra-azonosítóval való engedélyezéshez (ajánlott) az Azure RBAC beépített szerepkörű Storage Blob Data Közreműködő vagy újabb szerepkörre van szüksége. További információkért tekintse meg a List Containers (REST API) engedélyezési útmutatóját.

Tudnivalók a tárolólista beállításairól

Ha tárolókat listáz a kódból, megadhatja az eredmények Azure Storage-ból való visszaadására vonatkozó beállításokat. Megadhatja az egyes találathalmazokban visszaadandó eredmények számát, majd lekérheti a következő halmazokat. Az eredményeket előtaggal is szűrheti, és a tároló metaadatait is visszaadhatja az eredményekkel. Ezeket a lehetőségeket a következő szakaszok ismertetik.

A tárfiók tárolóinak listázásához hívja meg a következő módszert:

Ez a metódus egy Pager-t ad vissza, amely lehetővé teszi, hogy az alkalmazás egyszerre egy oldalnyi eredményt dolgoz fel. A tárolók név szerint vannak lexikális sorrendben rendezve.

A tárolók listázásának beállításait a ListContainersOptions struktúra használatával adhatja meg. Ez a struktúra mezőket tartalmaz az eredmények számának kezeléséhez, az előtagok szerinti szűréshez, valamint a ListContainersInclude tárolóinformációinakmegadásához.

Az eredmény visszaadott értékének kezelése

Alapértelmezés szerint egy listaművelet legfeljebb 5000 eredményt ad vissza egyszerre. Ha kisebb eredményhalmazt szeretne visszaadni, adjon meg egy nemzero értéket a MaxResultsListContainersOptions struct mezőhöz.

Eredmények szűrése előtaggal

A tárolók listájának szűréséhez adjon meg egy sztringet vagy karaktert a Prefix ListContainersOptions mezőhöz. Az előtag sztringje egy vagy több karaktert tartalmazhat. Az Azure Storage ezután csak azokat a tárolókat adja vissza, amelyeknek a neve ezzel az előtaggal kezdődik.

Tároló metaadatainak belefoglalása

A tároló metaadatainak az eredményekkel való hozzáadásához true állítsa be a mezőt a Metadata ListContainersInclude részeként. Az Azure Storage minden visszaadott tárolóhoz tartalmaz metaadatokat, így nem kell külön lekérnie a tároló metaadatait.

Törölt tárolók belefoglalása

A helyreállíthatóan törölt tárolók eredményekkel való hozzáadásához true állítsa be a mezőt a Deleted ListContainersInclude részeként.

Kódpéldák

Az alábbi példa az összes tárolót és metaadatot felsorolja:

func listContainers(client *azblob.Client) {
    // List the containers in the storage account and include metadata
    pager := client.NewListContainersPager(&azblob.ListContainersOptions{
        Include: azblob.ListContainersInclude{Metadata: true},
    })

    for pager.More() {
        resp, err := pager.NextPage(context.TODO())
        handleError(err)

        for _, container := range resp.ContainerItems {
            fmt.Println(*container.Name)
            for k, v := range container.Metadata {
                fmt.Printf("%v: %v\n", k, *v)
            }
        }
    }
}

Az alábbi példa csak a megadott előtaggal kezdődő tárolókat sorolja fel:

func listContainersWithPrefix(client *azblob.Client, prefix string) {
    // List the containers in the storage account with a prefix
    pager := client.NewListContainersPager(&azblob.ListContainersOptions{
        Prefix: &prefix,
    })

    for pager.More() {
        resp, err := pager.NextPage(context.TODO())
        handleError(err)

        for _, container := range resp.ContainerItems {
            fmt.Println(*container.Name)
        }
    }
}

Az oldalankénti találatok számának korlátozását is megadhatja. Ez a példa egy értéket MaxResults ad át, és az eredményeket lapszámozza:

func listContainersWithMaxResults(client *azblob.Client, maxResults int32) {
    // List the containers in the storage account with a maximum number of results
    pager := client.NewListContainersPager(&azblob.ListContainersOptions{
        MaxResults: &maxResults,
    })

    i := 0
    for pager.More() {
        resp, err := pager.NextPage(context.TODO())
        handleError(err)

        // Show page number to demonstrate pagination with max results
        i++
        fmt.Printf("Page %d:\n", i)

        for _, container := range resp.ContainerItems {
            fmt.Println(*container.Name)
        }
    }
}

Feljegyzés

Az útmutatóban szereplő kódminták az Azure Blob Storage és a Go használatának megkezdéséhez nyújtanak segítséget. Az alkalmazás igényeinek megfelelően módosítania kell a hibakezelést és Context az értékeket.

Források

A tárolók Go-hoz készült Azure Blob Storage-ügyfélmodullal történő listázásával kapcsolatos további információkért tekintse meg az alábbi erőforrásokat.

Kódminták

REST API-műveletek

Az Azure SDK for Go olyan kódtárakat tartalmaz, amelyek az Azure REST API-ra épülnek, lehetővé téve a REST API-műveletek használatát ismert Go-paradigmákon keresztül. A tárolók listázásához használt ügyfélkódtár-metódusok a következő REST API-műveletet használják:

Ügyfélmodul erőforrásai

Lásd még