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:
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
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 azasyncio
eseményhurokot. A koroutinok az aszinkron/várakozási szintaxissal vannak deklarálva. Ebben a példában amain()
koroutin először a legfelső szintetBlobServiceClient
hozza létre a tárolókat felsoroló metódus meghívásávalasync with
. Vegye figyelembe, hogy csak a legfelső szintű ügyfélnek kell használniaasync 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())
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, ésasync for
alist_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:
- Tárolók listázása (REST API)
Kódminták
- Szinkron vagy aszinkron kódminták megtekintése ebből a cikkből (GitHub)
Ügyfélkódtár erőforrásai
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: