Delen via


Objecten overdragen naar/van Azure Blob Storage met behulp van PHP

In deze quickstart leert u hoe u PHP gebruikt om blok-blobs te uploaden, te downloaden en weer te geven in een container in Azure Blob Storage.

Vereiste voorwaarden

U hebt een Azure-abonnement nodig voor toegang tot Azure Storage. Als u nog geen abonnement hebt, maakt u een gratis account voordat u begint.

Alle toegang tot Azure Storage vindt plaats via een opslagaccount. Voor deze quickstart gaat u een opslagaccount maken met de Azure-portal, Azure PowerShell of Azure CLI. Zie voor meer informatie over het maken van een opslagaccount Een opslagaccount maken.

Zorg ervoor dat de volgende aanvullende vereisten zijn geïnstalleerd:

De voorbeeldtoepassing downloaden

De voorbeeldtoepassing die in deze quickstart wordt gebruikt, is een eenvoudige PHP-toepassing.

Gebruik git om een kopie van de toepassing naar uw ontwikkelomgeving te downloaden.

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

Met deze opdracht wordt de opslagplaats naar uw lokale git-map gekloond. Als u de PHP-voorbeeldtoepassing wilt openen, zoekt u de map storage-blobs-php-quickstart en opent u het phpqs.php-bestand.

Kopieer uw referenties van de Azure Portal

De voorbeeldtoepassing moet toegang tot uw opslagaccount autoriseren. Geef uw opslagaccount-inloggegevens aan de applicatie door in de vorm van een verbindingsreeks. Uw opslagaccountreferenties weergeven:

  1. Ga in het Azure Portal naar uw opslagaccount.

  2. Selecteer in het gedeelte Instellingen van het overzicht van het opslagaccount Toegangssleutels om uw accounttoegangssleutels en verbindingsreeks weer te geven.

  3. Noteer de naam van uw opslagaccount, die u nodig hebt voor autorisatie.

  4. Zoek de waarde van sleutel onder sleutel1en selecteer Kopiëren om de accountsleutel te kopiëren.

    Schermopname waarin wordt getoond hoe u uw accountsleutel kopieert vanuit azure Portal

De opslagverbindingsreeks configureren

In de toepassing moet u de naam en accountsleutel van uw opslagaccount opgeven om het BlobRestProxy-exemplaar voor uw toepassing te maken. Het wordt aanbevolen om deze id's op te slaan in een omgevingsvariabele op de lokale computer waarop de toepassing wordt uitgevoerd. Gebruik een van de volgende voorbeelden, afhankelijk van uw besturingssysteem om de omgevingsvariabele te maken. Vervang de waarden van youraccountname en youraccountkey door de naam en sleutel van uw account.

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

Uw omgeving configureren

Neem de map uit uw lokale Git-map en plaats deze in een map die wordt geleverd door uw PHP-server. Open vervolgens een opdrachtprompt die is gericht op dezelfde map en voer het volgende in: php composer.phar install

Het voorbeeld uitvoeren

In dit voorbeeld wordt een testbestand gemaakt in de map '.'. Het voorbeeldprogramma uploadt het testbestand naar Blob Storage, vermeldt de blobs in de container en downloadt het bestand met een nieuwe naam.

Voer het voorbeeld uit. De volgende uitvoer is een voorbeeld van de uitvoer die wordt geretourneerd bij het uitvoeren van de toepassing:

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!

Wanneer u op de weergegeven knop drukt, verwijdert het voorbeeldprogramma de opslagcontainer en de bestanden. Voordat u doorgaat, controleert u de map van uw server op de twee bestanden. U kunt ze openen en zien dat ze identiek zijn.

U kunt ook een hulpprogramma zoals Azure Storage Explorer gebruiken om de bestanden in de Blob-opslag te bekijken. Azure Storage Explorer is een gratis hulpprogramma voor meerdere platforms waarmee u toegang hebt tot de gegevens van uw opslagaccount.

Nadat u de bestanden hebt geverifieerd, drukt u op een willekeurige toets om de demo te voltooien en de testbestanden te verwijderen. Nu u weet wat het voorbeeld doet, opent u het bestand example.rb om de code te bekijken.

De voorbeeldcode begrijpen

Vervolgens doorlopen we de voorbeeldcode, zodat u begrijpt hoe deze werkt.

Verwijzingen naar de opslagobjecten ophalen

Het eerste wat u moet doen, is het maken van verwijzingen naar de objecten die worden gebruikt voor het openen en beheren van Blob Storage. Deze objecten bouwen op elkaar voort en elk object wordt gebruikt door de volgende in de lijst.

  • Maak een exemplaar van het Azure Storage BlobRestProxy-object om verbindingsreferenties in te stellen.
  • Maak het BlobService-object dat verwijst naar de Blob-service in uw opslagaccount.
  • Maak het containerobject , dat de container vertegenwoordigt die u opent. Containers worden gebruikt om uw blobs te ordenen, zoals u mappen op uw computer gebruikt om uw bestanden te ordenen.

Zodra u het blobClient-containerobject hebt, kunt u het blok-blobobject maken dat verwijst naar de specifieke blob waarin u geïnteresseerd bent. Vervolgens kunt u bewerkingen uitvoeren zoals uploaden, downloaden en kopiëren.

Belangrijk

Containernamen moeten uit kleine letters bestaan. Zie Naamgeving en verwijzingen naar containers, blobs en metagegevens voor meer informatie over container- en blobnamen.

In deze sectie stelt u een exemplaar van de Azure Storage-client in, instantieert u het blobserviceobject, maakt u een nieuwe container en stelt u machtigingen in voor de container, zodat de blobs openbaar zijn. De container wordt quickstartblobs genoemd.

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

Blobs uploaden naar de container

Blob-opslag ondersteunt blok-blobs, toevoeg-blobs en pagina-blobs. Blok-blobs worden het meest gebruikt en dat is wat in deze quickstart wordt gebruikt.

Als u een bestand naar een blob wilt uploaden, verkrijgt u het volledige pad naar het bestand door de mapnaam en de bestandsnaam op uw lokale schijf te combineren. Vervolgens kunt u het bestand uploaden naar het opgegeven pad met behulp van de methode createBlockBlob().

De voorbeeldcode neemt een lokaal bestand en uploadt het naar Azure. Het bestand wordt opgeslagen als myfile en de naam van de blob als fileToUpload in de code. In het volgende voorbeeld wordt het bestand geüpload naar uw container met de naam 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);

Als u een gedeeltelijke update van de inhoud van een blok-blob wilt uitvoeren, gebruikt u de methode createblocklist(). Blok-blobs kunnen zo groot zijn als 4,7 TB en kunnen van alles zijn, van Excel-spreadsheets tot grote videobestanden. Pagina-blobs worden voornamelijk gebruikt voor de VHD-bestanden die worden gebruikt ter back-up van IaaS-VM's. Toevoeg-blobs worden gebruikt voor logboekregistratie, bijvoorbeeld wanneer u gegevens wilt wegschrijven naar een bestand en vervolgens gegevens wilt blijven toevoegen. Toevoeg-blob moet worden gebruikt in één writer-model. De meeste objecten die zijn opgeslagen in Blob Storage zijn blok-blobs.

De blobs van een container weergeven

U kunt een lijst met bestanden in de container ophalen met behulp van de methode listBlobs(). De volgende code haalt de lijst met blobs op en doorloopt deze vervolgens, waarbij de namen van de blobs die in een container zijn gevonden, worden weergegeven.

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

De inhoud van uw blobs ophalen

Haal de inhoud van uw blobs op met behulp van de methode getBlob( ). In de volgende code wordt de inhoud van de blob weergegeven die in een vorige sectie is geüpload.

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

De hulpbronnen opschonen

Als u de blobs die in deze quickstart zijn geüpload niet meer nodig hebt, kunt u de hele container verwijderen met behulp van de methode deleteContainer(). Als de gemaakte bestanden niet meer nodig zijn, gebruikt u de methode deleteBlob() om de bestanden te verwijderen.

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

Resources voor het ontwikkelen van PHP-toepassingen met blobs

Zie deze aanvullende bronnen voor PHP-ontwikkeling met Blob Storage:

Volgende stappen

In deze quickstart hebt u geleerd hoe u bestanden overdraagt tussen een lokale schijf en Azure Blob Storage met behulp van PHP. Ga naar ons PHP-ontwikkelaarscentrum voor meer informatie over het werken met PHP.

Zie Azure Blob Storage-resources beheren met Storage Explorer voor meer informatie over Storage Explorer en Blobs.