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


Blobtároló létrehozása a Pythonnal

Az Azure Storage-blobok tárolókba vannak rendezve. Mielőtt feltölthet egy blobot, először létre kell hoznia egy tárolót. Ez a cikk bemutatja, hogyan hozhat létre tárolókat a Pythonhoz készült Azure Storage ügyfélkódtárral.

A blobtárolók aszinkron API-k használatával történő létrehozásáról további információt a tároló aszinkron létrehozá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ó létrehozá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ó elnevezéséről

A tárolónévnek érvényes DNS-névnek kell lennie, mivel a tároló vagy a blobok kezeléséhez használt egyedi URI részét képezi. Tároló elnevezésekor kövesse az alábbi szabályokat:

  • A tárolónevek hossza 3 és 63 karakter között lehet.
  • A tárolóneveknek betűvel vagy számmal kell kezdődniük, és csak kisbetűket, számokat és kötőjelet (-) tartalmazhatnak.
  • Az egymást követő kötőjelek nem használhatók a tárolónevekben.

A tárolóerőforrás URI-ja a következőképpen van formázva:

https://my-account-name.blob.core.windows.net/my-container-name

Tároló létrehozása

Tároló létrehozásához hívja meg a következő metódust a BlobServiceClient osztályból:

Tárolót a ContainerClient osztály következő metódusával is létrehozhat:

A tárolók közvetlenül a tárfiók alatt jönnek létre. Az egyik tárolót nem lehet egymás alá ágyazni. Kivétel akkor keletkezik, ha már létezik ilyen nevű tároló.

Az alábbi példa létrehoz egy tárolót egy BlobServiceClient objektumból:

def create_blob_container(self, blob_service_client: BlobServiceClient, container_name):
    try:
        container_client = blob_service_client.create_container(name=container_name)
    except ResourceExistsError:
        print('A container with this name already exists')

A gyökértároló létrehozása

A gyökértároló a tárfiók alapértelmezett tárolójaként szolgál. Minden tárfiók rendelkezhet egy gyökértárolóval, amelyet $root kell nevezni. A gyökértárolót explicit módon kell létrehozni vagy törölni.

A gyökértárolóban tárolt blobra a gyökértároló neve nélkül hivatkozhat. A gyökértárolóval hivatkozhat egy blobra a tárfiók-hierarchia legfelső szintjén. Hivatkozhat például egy blobra a gyökértárolóban az alábbiak szerint:

https://accountname.blob.core.windows.net/default.html

Az alábbi példa létrehoz egy új ContainerClient objektumot $root tárolónévvel, majd létrehozza a tárolót, ha még nem létezik a tárfiókban:

def create_blob_root_container(self, blob_service_client: BlobServiceClient):
    container_client = blob_service_client.get_container_client(container="$root")

    # Create the root container if it doesn't already exist
    if not container_client.exists():
        container_client.create_container()

Tároló aszinkron létrehozása

A Pythonhoz készült Azure Blob Storage-ügyfélkódtár aszinkron módon támogatja a blobtárolók létrehozását. 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 egy tároló aszinkron API-k használatával történő létrehozá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
    from azure.core.exceptions import ResourceExistsError
    
  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() coroutine először a legfelső szintet BlobServiceClientasync withhozza létre, majd meghívja a tárolót létrehozó metódust. 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.create_blob_container(blob_service_client, "sample-container")
    
    if __name__ == '__main__':
        asyncio.run(main())
    
  3. Adjon hozzá kódot egy tároló létrehozá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 a await kulcsszót a metódus meghívásakor használja a create_container rendszer.

    async def create_blob_container(self, blob_service_client: BlobServiceClient, container_name):
        try:
            container_client = await blob_service_client.create_container(name=container_name)
        except ResourceExistsError:
            print('A container with this name already exists')
    

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

Ha többet szeretne megtudni arról, hogyan hozhat létre tárolót a Pythonhoz készült Azure Blob Storage ügyfélkódtár használatával, tekintse meg az alábbi erőforrásokat.

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ó létrehozá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