Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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:
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.
Jegyezze fel a tárfiók nevét, amelyre az engedélyezéshez szüksége lesz.
Keresse meg a kulcs értékét kulcs1alatt, és válassza másolása lehetőséget a fiókkulcs másolásához.
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.
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:
- Az Azure Storage PHP-ügyfélkódtár forráskódjának megtekintése, letöltése és telepítése a GitHubon.
- Fedezze fel a PHP-ügyfélkódtár használatával írt Blob Storage-mintákat .
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.