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


Blobtárolók listázása Pythonnal

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 Pythonhoz készült Azure Storage ügyfélkódtár használatával.

A blobtárolók aszinkron API-k használatával történő listázásáról további információt a tárolók aszinkron listázása című témakörben talál.

Előfeltételek

  • Ez a cikk feltételezi, hogy már van egy projektje, amely a PythonHoz készült Azure Blob Storage ügyfélkódtárral működik együtt. Ha többet szeretne megtudni a projekt beállításáról, beleértve a csomagtelepítést, az utasítások hozzáadását import és egy engedélyezett ügyfélobjektum létrehozását, olvassa el az Azure Blob Storage és a Python használatának első lépéseit.
  • Az engedélyezési mechanizmusnak rendelkeznie kell a blobtárolók listázásához szükséges engedélyekkel. További információkért tekintse meg az alábbi REST API-művelet 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 ContainerProperties típusú iterátert ad vissza. A tárolók név szerint vannak lexikális sorrendben rendezve.

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 nem nulla értéket a results_per_page kulcsszóargumentumhoz.

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 name_starts_with kulcsszóargumentumhoz. 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ényekhez való hozzáadásához állítsa a include_metadata kulcsszó argumentumát a következőre True: . 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

Ha a helyreállíthatóan törölt tárolókat az eredményekkel együtt szeretné hozzáadni, állítsa a kulcsszó argumentumát a include_deleted következőre True: .

Kódpéldák

Az alábbi példa az összes tárolót és metaadatot felsorolja. A tároló metaadatait a következő értékre Trueállítva include_metadata adhatja meg:

def list_containers(self, blob_service_client: BlobServiceClient):
    containers = blob_service_client.list_containers(include_metadata=True)
    for container in containers:
        print(container['name'], container['metadata'])

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

def list_containers_prefix(self, blob_service_client: BlobServiceClient):
    containers = blob_service_client.list_containers(name_starts_with='test-')
    for container in containers:
        print(container['name'])

Az oldalankénti találatok számának korlátozását is megadhatja. Ez a példa átadja az results_per_page eredményeket, és lapszámba továbbítja az eredményeket:

def list_containers_pages(self, blob_service_client: BlobServiceClient):
    i=0
    all_pages = blob_service_client.list_containers(results_per_page=5).by_page()
    for container_page in all_pages:
        i += 1
        print(f"Page {i}")
        for container in container_page:
            print(container['name'])

Tárolók aszinkron listázása

A Pythonhoz készült Azure Blob Storage ügyfélkódtár a tárolók aszinkron felsorolását támogatja. A projektbeállítási követelményekről további információt az Aszinkron programozás című témakörben talál.

Kövesse az alábbi lépéseket a tárolók aszinkron API-k használatával történő listázásához:

  1. Adja hozzá a következő importálási utasításokat:

    import asyncio
    
    from azure.identity.aio import DefaultAzureCredential
    from azure.storage.blob.aio import BlobServiceClient
    
  2. Kód hozzáadása a program futtatásához a következő használatával asyncio.run: . Ez a függvény a példánkban futtatja az átadott koroutint, main() és kezeli az asyncio eseményhurokot. A koroutinok az aszinkron/várakozási szintaxissal vannak deklarálva. Ebben a példában a main() koroutin először a legfelső szintet BlobServiceClient hozza létre a tárolókat felsoroló metódus meghívásával async with. Vegye figyelembe, hogy csak a legfelső szintű ügyfélnek kell használnia async with, mivel az abból létrehozott többi ügyfél ugyanazt a kapcsolatkészletet használja.

    async def main():
        sample = ContainerSamples()
    
        # TODO: Replace <storage-account-name> with your actual storage account name
        account_url = "https://<storage-account-name>.blob.core.windows.net"
        credential = DefaultAzureCredential()
    
        async with BlobServiceClient(account_url, credential=credential) as blob_service_client:
            await sample.list_containers(blob_service_client)
    
    if __name__ == '__main__':
        asyncio.run(main())
    
  3. Adjon hozzá kódot a tárolók listázásához. A kód megegyezik a szinkron példával, azzal a kivétellel, hogy a metódus a kulcsszóval async van deklarálva, és async for a list_containers metódus meghívásakor használatos.

    async def list_containers(self, blob_service_client: BlobServiceClient):
        async for container in blob_service_client.list_containers(include_metadata=True):
            print(container['name'], container['metadata'])
    

Ezzel az alapszintű beállítással a cikkben más példákat is implementálhat coroutinesként az aszinkron/várakozási szintaxis használatával.

Források

A tárolók Pythonhoz készült Azure Blob Storage-ügyfélkódtár használatával történő listázásáról az alábbi forrásokban olvashat bővebben.

REST API-műveletek

Az Azure SDK for Python 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 jól ismert Python-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:

Kódminták

Ügyfélkódtár erőforrásai

Lásd még