Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstarten lär du dig hur du använder PHP för att ladda upp, ladda ned och lista blockblobar i en container i Azure Blob Storage.
Förutsättningar
Du behöver en Azure-prenumeration för att få åtkomst till Azure Storage. Om du inte redan har en prenumeration skapar du ett kostnadsfritt konto innan du börjar.
All åtkomst till Azure Storage sker via ett lagringskonto. För den här snabbstarten skapar du ett lagringskonto med hjälp av Azure-portalen, Azure PowerShell eller Azure CLI. Hjälp med att skapa ett lagringskonto finns i Skapa ett lagringskonto.
Kontrollera att du har följande ytterligare krav installerade:
Hämta exempelprogrammet
Exempelprogrammet som används i den här snabbstarten är ett grundläggande PHP-program.
Använd git för att ladda ned en kopia av programmet till utvecklingsmiljön.
git clone https://github.com/Azure-Samples/storage-blobs-php-quickstart.git
Det här kommandot klonar lagret till den lokala git-mappen. Om du vill öppna PHP-exempelprogrammet letar du efter mappen storage-blobs-php-quickstart och öppnar filen phpqs.php.
Kopiera dina autentiseringsuppgifter från Azure-portalen
Exempelprogrammet måste auktorisera åtkomst till ditt lagringskonto. Ange dina autentiseringsuppgifter för lagringskontot till programmet i form av en anslutningssträng. Så här visar du dina autentiseringsuppgifter för lagringskontot:
Gå till Azure-portalen och navigera till ditt lagringskonto.
I avsnittet Inställningar i lagringskontots översikt väljer du Åtkomstnycklar för att visa dina kontoåtkomstnycklar och anslutningssträng.
Observera namnet på ditt lagringskonto, som du behöver för auktorisering.
Hitta värdet Nyckel under key1, och välj Kopiera för att kopiera kontonyckeln.
Konfigurera anslutningssträngen för lagring
I programmet måste du ange ditt lagringskontonamn och din kontonyckel för att skapa BlobRestProxy-instansen för ditt program. Vi rekommenderar att du lagrar dessa identifierare i en miljövariabel på den lokala dator som kör programmet. Använd något av följande exempel beroende på ditt operativsystem för att skapa miljövariabeln. Ersätt värdena youraccountname och youraccountkey med ditt kontonamn och din nyckel.
Konfigurera din miljö
Ta mappen från din lokala git-mapp och placera den i en katalog som hanteras av PHP-servern. Öppna sedan en kommandotolk som är begränsad till samma katalog och ange: php composer.phar install
Kör exempelprogrammet
Det här exemplet skapar en testfil i mappen .. Exempelprogrammet laddar upp testfilen till Blob Storage, listar blobarna i containern och laddar ned filen med ett nytt namn.
Kör exemplet. Följande utdata är ett exempel på utdata som returneras när programmet körs:
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!
När du trycker på knappen som visas tar exempelprogrammet bort lagringscontainern och filerna. Innan du fortsätter kontrollerar du serverns mapp för de två filerna. Du kan öppna dem och se att de är identiska.
Du kan också använda ett verktyg som Azure Storage Explorer för att visa filerna i blobblagringen. Azure Storage Explorer är ett kostnadsfritt verktyg för flera plattformar som gör det möjligt att komma åt information på lagringskontot.
När du har verifierat filerna trycker du på valfri nyckel för att slutföra demonstrationen och ta bort testfilerna. Nu när du vet vad exemplet gör öppnar du filen example.rb för att titta på koden.
Förstå exempelkoden
Sedan går vi igenom exempelkoden så att du kan förstå hur den fungerar.
Hämta referenser till lagringsobjekten
Det första du behöver göra är att skapa referenser till de objekt som används för att komma åt och hantera Blob Storage. Dessa objekt bygger på varandra, och var och en används av nästa objekt i listan.
- Skapa en instans av Azure Storage BlobRestProxy-objektet för att konfigurera autentiseringsuppgifter för anslutningen.
- Skapa BlobService-objektet som pekar på blobtjänsten i ditt lagringskonto.
- Skapa containerobjektet , som representerar den container som du kommer åt. Containrar används för att organisera dina blobar på samma sätt som du använder mappar på datorn för att organisera dina filer.
När du har blobClient-containerobjektet kan du skapa blockblobobjektet som pekar på den specifika blob som du är intresserad av. Sedan kan du utföra åtgärder som att ladda upp, ladda ned och kopiera.
Viktigt!
Containernamn måste vara med små bokstäver. Se namngivning och referens av containrar, blobar och metadata för mer information om container- och blobnamn.
I det här avsnittet konfigurerar du en instans av Azure Storage-klienten, instansierar blobtjänstobjektet, skapar en ny container och anger behörigheter för containern så att blobarna blir offentliga. Containern kallas 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);
Ladda upp blobar i containern
Blob Storage stöder blockblobar, tilläggsblobar och sidblobar. Blockblobar är de vanligaste och det är det som används i den här snabbstarten.
För att ladda upp en fil till en blob ska du skapa filens fullständiga sökväg genom att kombinera mappnamnet och filnamnet på din lokala hårddisk. Du kan sedan ladda upp filen till den angivna sökvägen med hjälp av metoden createBlockBlob().
Exempelkoden tar en lokal fil och laddar upp den till Azure. Filen lagras som myfile och namnet på bloben som fileToUpload i koden. I följande exempel laddas filen upp till containern med namnet 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);
Om du vill utföra en partiell uppdatering av innehållet i en blockblob använder du metoden createblocklist(). Blockblobar kan vara så stora som 4,7 TB och kan vara allt från Excel-kalkylblad till stora videofiler. Sidblobar används främst för de VHD-filer som används för att stödja virtuella IaaS-datorer. Tilläggsblobar används för loggning, till exempel när du vill skriva till en fil och sedan fortsätta att lägga till mer information. Tilläggsblob ska användas i en enskild skrivmodell. De flesta objekt som lagras i Blob Storage är blockblobar.
Lista blobar i en behållare
Du kan hämta en lista över filer i containern med hjälp av metoden listBlobs(). Följande kod hämtar listan över blobar och loopar sedan igenom dem och visar namnen på blobarna som finns i en container.
$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());
Hämta innehållet i dina blobar
Hämta innehållet i dina blobar med metoden getBlob(). Följande kod visar innehållet i den blob som laddades upp i ett tidigare avsnitt.
$blob = $blobClient->getBlob($containerName, $fileToUpload);
fpassthru($blob->getContentStream());
Rensa resurser
Om du inte längre behöver de blobar som laddas upp i den här snabbstarten kan du ta bort hela containern med metoden deleteContainer(). Om de filer som skapats inte längre behövs använder du metoden deleteBlob() för att ta bort filerna.
// 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);
Resurser för att utveckla PHP-program med blobar
Se dessa ytterligare resurser för PHP-utveckling med Blob Storage:
- Visa, ladda ned och installera PHP-klientbibliotekets källkod för Azure Storage på GitHub.
- Utforska Blob Storage-exempel som skrivits med HJÄLP av PHP-klientbiblioteket.
Nästa steg
I den här snabbstarten har du lärt dig hur du överför filer mellan en lokal disk och Azure Blob Storage med PHP. Om du vill veta mer om hur du arbetar med PHP fortsätter du till vårt PHP Developer Center.
Mer information om Storage Explorer och blobar finns i Hantera Azure Blob Storage-resurser med Storage Explorer.