Sdílet prostřednictvím


Přenos objektů do a z úložiště objektů blob v Azure pomocí PHP

V tomto rychlém průvodci se dozvíte, jak pomocí PHP nahrávat, stahovat a zobrazovat blokové blobové objekty v kontejneru ve službě Azure Blob.

Požadavky

Pro přístup ke službě Azure Storage budete potřebovat předplatné Azure. Pokud ještě nemáte předplatné, vytvořte si před zahájením bezplatný účet .

Veškerý přístup ke službě Azure Storage probíhá prostřednictvím účtu úložiště. Pro účely tohoto rychlého startu vytvořte účet úložiště pomocí webu Azure Portal, Azure PowerShellu nebo Azure CLI. Nápovědu k vytvoření účtu úložiště najdete v tématu Vytvoření účtu úložiště.

Ujistěte se, že máte nainstalované následující další požadavky:

Stažení ukázkové aplikace

Ukázková aplikace použitá v tomto rychlém startu je základní aplikace PHP.

Pomocí gitu stáhněte kopii aplikace do svého vývojového prostředí.

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

Tento příkaz naklonuje úložiště do vaší místní složky gitu. Pokud chcete otevřít ukázkovou aplikaci PHP, vyhledejte složku storage-blobs-php-quickstart a otevřete soubor phpqs.php.

Zkopírování přihlašovacích údajů z webu Azure Portal

Ukázková aplikace potřebuje autorizovat přístup k vašemu účtu úložiště. Zadejte přihlašovací údaje ke svému účtu úložiště pro aplikaci ve formě připojovacího řetězce. Zobrazení přihlašovacích údajů účtu úložiště:

  1. Na webu Azure Portal přejděte do svého účtu úložiště.

  2. V části Nastavení přehledu účtu úložiště vyberte Přístupové klíče, aby se zobrazily přístupové klíče účtu a připojovací řetězec.

  3. Poznamenejte si název účtu úložiště, který budete potřebovat k autorizaci.

  4. V části najděte pod klíčemklíč1 hodnotu Klíč a vyberte možnost Kopírovat pro zkopírování klíče účtu.

    snímek obrazovky ukazující, jak zkopírovat klíč účtu z webu Azure Portal

Nakonfigurujte připojovací řetězec úložiště

V aplikaci musíte zadat název účtu úložiště a klíč účtu k vytvoření instance BlobRestProxy pro vaši aplikaci. Doporučujeme tyto identifikátory uložit do proměnné prostředí na místním počítači, na kterém běží aplikace. Použijte jeden z následujících příkladů v závislosti na operačním systému a vytvořte proměnnou prostředí. Hodnoty youraccountname a youraccountkey nahraďte názvem a klíčem vašeho účtu.

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

Konfigurujte své prostředí

Vezměte složku z místní složky Git a umístěte ji do adresáře, který obsluhuje váš server PHP. Pak otevřete příkazový řádek s vymezeným oborem stejného adresáře a zadejte: php composer.phar install

Spusťte ukázku

Tato ukázka vytvoří testovací soubor ve složce '.'. Ukázkový program nahraje testovací soubor do úložiště objektů blob, vypíše objekty blob v kontejneru a stáhne soubor s novým názvem.

Spusťte ukázku. Následující výstup je příkladem výstupu vráceného při spuštění aplikace:

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!

Když stisknete zobrazené tlačítko, ukázkový program odstraní kontejner úložiště a soubory. Než budete pokračovat, zkontrolujte, jestli složka vašeho serveru obsahuje dva soubory. Můžete je otevřít a vidět, že jsou identické.

K zobrazení souborů v úložišti objektů blob můžete použít také nástroj, jako je Průzkumník služby Azure Storage. Průzkumník služby Azure Storage je bezplatný nástroj pro více platforem, který umožňuje přístup k informacím o účtu úložiště.

Po ověření souborů stiskněte libovolnou klávesu, abyste dokončili ukázku a odstranili testovací soubory. Teď, když víte, co ukázka dělá, otevřete soubor example.rb a prohlédněte si kód.

Vysvětlení vzorového kódu

Dále si projdeme vzorový kód, abyste pochopili, jak funguje.

Získání odkazů na objekty úložiště

První věcí, kterou je potřeba udělat, je vytvořit odkazy na objekty používané pro přístup k úložišti objektů blob a jejich správu. Tyto objekty se vzájemně vytvářejí a každý z nich je používán dalším objektem v seznamu.

  • Vytvořte instanci objektu BlobRestProxy úložiště Azure pro nastavení přihlašovacích údajů pro připojení.
  • Vytvořte objekt BlobService , který odkazuje na službu Blob Service ve vašem účtu úložiště.
  • Vytvořte objekt Kontejner , který představuje kontejner, ke kterému přistupujete. Kontejnery slouží k uspořádání objektů blob, jako jsou složky v počítači k uspořádání souborů.

Jakmile máte objekt kontejneru blobClient, můžete vytvořit blob objektu bloku, který odkazuje na konkrétní objekt blob, který vás zajímá. Pak můžete provádět operace, jako je nahrávání, stahování a kopírování.

Důležité

Názvy kontejnerů musí být malými písmeny. Další informace o názvech kontejnerů a objektů blob najdete v tématu Pojmenování a odkazování na kontejnery, objekty blob a metadata .

V této části nastavíte instanci klienta úložiště Azure, vytvoříte instanci objektu služby Blob Service, vytvoříte nový kontejner a nastavíte oprávnění pro kontejner tak, aby objekty blob byly veřejné. Kontejner se nazývá quickstartblobs.

    # 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);

Nahrát blobů do kontejneru

Úložiště objektů blob podporuje blokové blob objekty, doplňovací blob objekty a stránkové blob objekty. Bloby typu blok jsou nejčastěji používány, a právě ty se používají v tomto rychlém průvodci.

Pokud chcete nahrát soubor do objektu blob, získejte úplnou cestu k souboru připojením názvu adresáře a názvu souboru na místním disku. Pak můžete nahrát soubor do zadané cesty pomocí metody createBlockBlob().

Ukázkový kód vezme místní soubor a nahraje ho do Azure. Soubor se uloží jako myfile a název objektu blob jako fileToUpload v kódu. Následující příklad nahraje soubor do kontejneru s názvem quickstartblobs.

    $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);

Pokud chcete provést částečnou aktualizaci obsahu objektu blob bloku, použijte metodu createblocklist(). Objekty blob bloku můžou být až 4,7 TB velké a můžou obsahovat cokoli od Excelových tabulek až po velké videosoubory. Objekty stránkových blobů se primárně používají pro soubory VHD, které slouží k podpoře virtuálních počítačů IaaS. Append bloky se používají k protokolování, například když chcete zapisovat do souboru a pak neustále přidávat další informace. Append blob by se měl používat v modelu s jedním zapisovačem. Většina objektů uložených v úložišti objektů blob jsou blokové objekty blob.

Seznam blobů v kontejneru

Seznam souborů v kontejneru můžete získat pomocí metody listBlobs(). Následující kód načte seznam objektů blob a pak je provede smyčkou a zobrazí názvy objektů blob nalezených v kontejneru.

    $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());

Získejte obsah vašich blobů

Získejte obsah objektů blob pomocí metody getBlob(). Následující kód zobrazí obsah objektu blob nahraného v předchozí části.

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

Čištění zdrojů

Pokud už nepotřebujete objekty blob nahrané v tomto rychlém startu, můžete celý kontejner odstranit pomocí metody deleteContainer(). Pokud už vytvořené soubory nepotřebujete, odstraňte soubory pomocí metody deleteBlob( ).

    // 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);   

Zdroje informací pro vývoj aplikací PHP s využitím objektů blob

Projděte si tyto další zdroje informací o vývoji PHP s využitím úložiště objektů blob:

Další kroky

V tomto rychlém startu jste zjistili, jak přenášet soubory mezi místním diskem a úložištěm objektů blob v Azure pomocí PHP. Další informace o práci s PHP najdete v našem centru pro vývojáře PHP.

Další informace o Průzkumníku služby Storage a objektech blob najdete v tématu Správa prostředků služby Azure Blob Storage pomocí Průzkumníka služby Storage.