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


Objektumok átvitele az Azure Blob Storage-ba vagy onnan a PHP használatával

Ebben a rövid útmutatóban megtudhatja, hogyan használhatja a PHP-t blokkblobok feltöltésére, letöltésére és listázására egy Azure Blob Storage-tárolóban.

Előfeltételek

Az Azure Storage eléréséhez Azure-előfizetésre lesz szüksége. Ha még nem rendelkezik előfizetéssel, a kezdés előtt hozzon létre egy ingyenes fiókot .

Az Azure Storage-hoz való minden hozzáférés egy tárfiókon keresztül történik. Ebben a rövid útmutatóban hozzon létre egy tárfiókot az Azure Portal, az Azure PowerShell vagy az Azure CLI használatával. A tárfiókok létrehozásával kapcsolatban lásd : Tárfiók létrehozása.

Győződjön meg arról, hogy a következő további előfeltételek vannak telepítve:

A mintaalkalmazás letöltése

Az ebben a rövid útmutatóban használt mintaalkalmazás egy egyszerű PHP-alkalmazás.

A git használatával töltse le az alkalmazás egy másolatát a fejlesztői környezetbe.

git clone https://github.com/Azure-Samples/storage-blobs-php-quickstart.git

Ez a parancs a helyi git mappába klónozza az adattárat. A PHP-mintaalkalmazás megnyitásához keresse meg a storage-blobs-php-quickstart mappát, és nyissa meg a phpqs.php fájlt.

A hitelesítési adatok másolása az Azure Portalról

A mintaalkalmazásnak engedélyeznie kell a tárfiókhoz való hozzáférést. Adja meg a tárfiók hitelesítő adatait az alkalmazásnak kapcsolati sztring formájában. A tárfiók hitelesítő adatainak megtekintése:

  1. Az Azure portálon menjen a tárfiókjába.

  2. A tárfiók áttekintésének Beállítások szakaszában válassza Hozzáférési kulcsok lehetőséget a fiók hozzáférési kulcsainak és kapcsolati sztringjének megjelenítéséhez.

  3. Jegyezze fel a tárfiók nevét, amelyre az engedélyezéshez szüksége lesz.

  4. Keresse meg a kulcs értékét kulcs1alatt, és válassza másolása lehetőséget a fiókkulcs másolásához.

    Képernyőkép a fiókkulcs Azure Portalról való másolásáról

A tárolási kapcsolati sztring konfigurálása

Az alkalmazásban meg kell adnia a tárfiók nevét és fiókkulcsát az alkalmazás BlobRestProxy-példányának létrehozásához. Javasoljuk, hogy ezeket az azonosítókat egy környezeti változóban tárolja az alkalmazást futtató helyi gépen. Használja az alábbi példák egyikét az operációs rendszertől függően a környezeti változó létrehozásához. Cserélje le a saját fióknevét és saját fiókkulcsát a fiók neve és kulcsa értékére.

export ACCOUNT_NAME=<youraccountname>
export ACCOUNT_KEY=<youraccountkey>

A környezet konfigurálása

Vegye ki a mappát a helyi Git mappából, és helyezze a PHP-kiszolgáló által kiszolgált könyvtárba. Ezután nyisson meg egy parancssort ugyanabban a könyvtárban, és írja be a következőt: php composer.phar install

A minta futtatása

Ez a minta létrehoz egy tesztfájlt a "." mappában. A mintaprogram feltölti a tesztfájlt a Blob Storage-ba, listázza a tárolóban lévő blobokat, és letölti a fájlt egy új névvel.

Futtassa a példát. Az alábbi kimenet egy példa az alkalmazás futtatásakor visszaadott kimenetre:

Uploading BlockBlob: HelloWorld.txt
These are the blobs present in the container: HelloWorld.txt: https://myexamplesacct.blob.core.windows.net/blockblobsleqvxd/HelloWorld.txt

This is the content of the blob uploaded: Hello Azure!

A megjelenő gomb lenyomásakor a mintaprogram törli a tárolót és a fájlokat. A folytatás előtt ellenőrizze a kiszolgáló mappájában a két fájlt. Megnyithatja őket, és láthatja, hogy azonosak.

Az Azure Storage Explorert vagy egy ahhoz hasonló eszközt is használhat, ha szeretné a fájlt megtekinteni a blobtárolóban. Az Azure Storage Explorer egy ingyenes, platformfüggetlen eszköz, amellyel elérheti a tárfiókjával kapcsolatos információkat.

Miután ellenőrizte a fájlokat, nyomja le bármelyik kulcsot a bemutató befejezéséhez és a tesztfájlok törléséhez. Most, hogy tudja, mi a minta, nyissa meg a example.rb fájlt a kód megtekintéséhez.

A mintakód értelmezése

Ezután végigvezetjük a mintakódot, hogy megérthesse, hogyan működik.

A tárobjektumokra mutató hivatkozások lekérése

Első lépésként hozza létre a Blob Storage eléréséhez és kezeléséhez használt objektumokra mutató hivatkozásokat. Ezek az objektumok egymásra épülnek, és ezeket a listában szereplő következő használja.

  • Hozza létre az Azure Storage BlobRestProxy objektum egy példányát a kapcsolat hitelesítő adatainak beállításához.
  • Hozza létre azt a BlobService-objektumot , amely a tárfiók blobszolgáltatására mutat.
  • Hozza létre a tárolóobjektumot , amely az elérni kívánt tárolót jelöli. A tárolók a blobok rendszerezésére szolgálnak, például mappákat használnak a számítógépen a fájlok rendszerezéséhez.

Miután létrehozta a BlobClient tárolóobjektumot, létrehozhatja a Blokkblob objektumot, amely arra az adott blobra mutat, amelyben érdekli. Ezután olyan műveleteket hajthat végre, mint a feltöltés, a letöltés és a másolás.

Fontos

A tárolók nevei csak kisbetűket tartalmazhatnak. A tárolók és blobok nevével kapcsolatos további információkért tekintse meg a tárolók, blobok és metaadatok elnevezését és hivatkozását .

Ebben a szakaszban az Azure Storage-ügyfél egy példányát állítja be, példányosíthatja a blobszolgáltatás-objektumot, új tárolót hozhat létre, és engedélyeket állíthat be a tárolón, hogy a blobok nyilvánosak legyenek. A tárolót quickstartblobs -nak nevezzük.

    # Setup a specific instance of an Azure::Storage::Client
    $connectionString = "DefaultEndpointsProtocol=https;AccountName=".getenv('account_name').";AccountKey=".getenv('account_key');

    // Create blob client.
    $blobClient = BlobRestProxy::createBlobService($connectionString);

    # Create the BlobService that represents the Blob service for the storage account
    $createContainerOptions = new CreateContainerOptions();

    $createContainerOptions->setPublicAccess(PublicAccessType::CONTAINER_AND_BLOBS);

    // Set container metadata.
    $createContainerOptions->addMetaData("key1", "value1");
    $createContainerOptions->addMetaData("key2", "value2");

    $containerName = "blockblobs".generateRandomString();

    try    {
        // Create container.
        $blobClient->createContainer($containerName, $createContainerOptions);

Blobok feltöltése a tárolóba

A Blob Storage támogatja a blokkblobokat, a hozzáfűző blobokat és a lapblobokat. A blokkblobok a leggyakrabban használtak, és ez az, amit ebben a rövid útmutatóban használunk.

Ha fel szeretne tölteni egy fájlt egy blobba, szerezze meg a fájl teljes elérési útját a könyvtárnév és a helyi meghajtón lévő fájlnév összekapcsolásával. Ezután a createBlockBlob() metódussal feltöltheti a fájlt a megadott elérési útra.

A mintakód egy helyi fájlt vesz fel, és feltölti az Azure-ba. A fájl myfile néven van tárolva, és a blob neve fileToUpload a kódban. Az alábbi példa feltölti a fájlt a quickstartblobs nevű tárolóba.

    $myfile = fopen("HelloWorld.txt", "w") or die("Unable to open file!");
    fclose($myfile);

    # Upload file as a block blob
    echo "Uploading BlockBlob: ".PHP_EOL;
    echo $fileToUpload;
    echo "<br />";

    $content = fopen($fileToUpload, "r");

    //Upload blob
    $blobClient->createBlockBlob($containerName, $fileToUpload, $content);

A blokkblob tartalmának részleges frissítéséhez használja a createblocklist() metódust. A blokkblobok akár 4,7 TB méretűek is lehetnek, és az Excel-számolótábláktól a nagy videofájlokig bármi lehet. A lapblobok elsősorban az IaaS virtuális gépek biztonsági mentéséhez használt VHD-fájlokhoz használatosak. A hozzáfűző blobok a naplózáshoz használhatók, például amikor egy fájlba szeretne írni, majd folyamatosan újabb információkat szeretne hozzáadni. A hozzáfűző blobot egyetlen írómodellben kell használni. A Blob Storage-ban tárolt objektumok többsége blokkblob.

Tárolóban lévő blobok kilistázása

A listBlobs() metódussal lekérheti a tárolóban lévő fájlok listáját. Az alábbi kód lekéri a blobok listáját, majd végighalad rajtuk, és megjeleníti a tárolóban található blobok nevét.

    $listBlobsOptions = new ListBlobsOptions();
    $listBlobsOptions->setPrefix("HelloWorld");

    echo "These are the blobs present in the container: ";

    do{
        $result = $blobClient->listBlobs($containerName, $listBlobsOptions);
        foreach ($result->getBlobs() as $blob)
        {
            echo $blob->getName().": ".$blob->getUrl()."<br />";
        }

        $listBlobsOptions->setContinuationToken($result->getContinuationToken());
    } while($result->getContinuationToken());

A blobok tartalmának lekérése

Szerezze meg a blobok tartalmát a getBlob() metódussal. Az alábbi kód az előző szakaszban feltöltött blob tartalmát jeleníti meg.

    $blob = $blobClient->getBlob($containerName, $fileToUpload);
    fpassthru($blob->getContentStream());

Erőforrások tisztítása

Ha már nincs szüksége az ebben a rövid útmutatóban feltöltött blobokra, a deleteContainer() metódussal törölheti a teljes tárolót. Ha a létrehozott fájlokra már nincs szükség, a deleteBlob() metódussal törölheti a fájlokat.

    // Delete blob.
    echo "Deleting Blob".PHP_EOL;
    echo $fileToUpload;
    echo "<br />";
    $blobClient->deleteBlob($_GET["containerName"], $fileToUpload);

    // Delete container.
    echo "Deleting Container".PHP_EOL;
    echo $_GET["containerName"].PHP_EOL;
    echo "<br />";
    $blobClient->deleteContainer($_GET["containerName"]);

    //Deleting local file
    echo "Deleting file".PHP_EOL;
    echo "<br />";
    unlink($fileToUpload);   

Források PHP-alkalmazások blobokkal való fejlesztéséhez

További források a Blob Storage-tal történő PHP-fejlesztéshez:

Következő lépések

Ebben a rövid útmutatóban megtanulta, hogyan továbbíthat fájlokat egy helyi lemez és az Azure Blob Storage között a PHP használatával. Ha többet szeretne megtudni a PHP-vel való munkáról, lépjen tovább a PHP fejlesztői központba.

A Storage Explorerrel és a blobokkal kapcsolatos további információkért lásd: Azure Blob Storage-erőforrások kezelése a Storage Explorerrel.