Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym przewodniku szybkiego startu dowiesz się, jak używać języka PHP do przesyłania, pobierania i wyświetlania blokowych obiektów blob w kontenerze w usłudze Azure Blob Storage.
Wymagania wstępne
Aby uzyskać dostęp do usługi Azure Storage, potrzebujesz subskrypcji platformy Azure. Jeśli nie masz jeszcze subskrypcji, przed rozpoczęciem utwórz bezpłatne konto .
Cały dostęp do usługi Azure Storage odbywa się za pośrednictwem konta magazynowania. W tym przewodniku szybkiego startu utwórz konto magazynu przy użyciu Portalu Azure, programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure. Aby uzyskać pomoc dotyczącą tworzenia konta magazynu, zobacz Tworzenie konta magazynu.
Upewnij się, że masz zainstalowane następujące dodatkowe wymagania wstępne:
Pobieranie przykładowej aplikacji
Przykładowa aplikacja używana w tym szybkim przewodniku to podstawowa aplikacja PHP.
Użyj narzędzia git , aby pobrać kopię aplikacji do środowiska deweloperskiego.
git clone https://github.com/Azure-Samples/storage-blobs-php-quickstart.git
To polecenie klonuje repozytorium do lokalnego folderu git. Aby otworzyć przykładową aplikację PHP, poszukaj folderu storage-blobs-php-quickstart i otwórz plik phpqs.php.
Kopiowanie poświadczeń z witryny Azure Portal
Przykładowa aplikacja musi uzyskać autoryzację do dostępu do konta magazynowego. Podaj poświadczenia konta magazynu do aplikacji w postaci ciągu połączenia. Aby wyświetlić informacje uwierzytelniające konta przechowywania:
W portalu Azure przejdź do konta magazynowego.
W sekcji Ustawienia przeglądu konta magazynu wybierz pozycję Klucze dostępu , aby wyświetlić klucze dostępu do konta i parametry połączenia.
Zapisz nazwę swojego konta przechowywania, które będzie potrzebne do autoryzacji.
Znajdź wartość Klucz w obszarze klucz1, a następnie wybierz pozycję Kopiuj , aby skopiować klucz konta.
Skonfiguruj ciąg połączenia z magazynem danych
W aplikacji należy podać nazwę konta przechowywania i klucz konta, aby utworzyć wystąpienie BlobRestProxy dla aplikacji. Zaleca się przechowywanie tych identyfikatorów w zmiennej środowiskowej na komputerze lokalnym z uruchomioną aplikacją. Użyj jednego z poniższych przykładów w zależności od systemu operacyjnego, aby utworzyć zmienną środowiskową. Zastąp wartości youraccountname i youraccountkey nazwą konta i kluczem.
Konfigurowanie środowiska
Weź folder z lokalnego folderu git i umieść go w katalogu obsługiwanym przez serwer PHP. Następnie otwórz wiersz polecenia o zakresie tego samego katalogu i wprowadź następujące polecenie: php composer.phar install
Uruchamianie aplikacji przykładowej
Ten przykład tworzy plik testowy w folderze ".". Przykładowy program przekazuje plik testowy do usługi Blob Storage, wyświetla listę obiektów blob w kontenerze i pobiera plik z nową nazwą.
Uruchom przykład. Następujące dane wyjściowe to przykład danych wyjściowych zwracanych podczas uruchamiania aplikacji:
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!
Po naciśnięciu wyświetlonego przycisku przykładowy program usuwa kontener magazynu i pliki. Przed kontynuowaniem sprawdź folder serwera dla tych dwóch plików. Można je otworzyć i zobaczyć, że są identyczne.
Możesz również użyć narzędzia, takiego jak Eksplorator usługi Azure Storage , aby wyświetlić pliki w usłudze Blob Storage. Eksplorator Azure Storage to darmowe narzędzie międzyplatformowe, które umożliwia dostęp do informacji na koncie magazynowania.
Po zweryfikowaniu plików naciśnij dowolny klawisz, aby zakończyć demonstrację i usunąć pliki testowe. Teraz, gdy wiesz, co robi przykład, otwórz plik example.rb, aby przyjrzeć się kodowi.
Omówienie przykładowego kodu
Następnie omówimy przykładowy kod, aby zrozumieć, jak działa.
Uzyskaj odwołania do obiektów magazynu
Najpierw należy utworzyć odwołania do obiektów używanych do uzyskiwania dostępu do usługi Blob Storage i zarządzania nią. Te obiekty są oparte na sobie, a każdy z nich jest używany przez następny na liście.
- Utwórz wystąpienie obiektu BlobRestProxy usługi Azure Storage, aby skonfigurować poświadczenia połączenia.
- Utwórz obiekt BlobService wskazujący usługę Blob Service na koncie magazynu.
- Utwórz obiekt Kontener , który reprezentuje kontener, do którego uzyskujesz dostęp. Kontenery służą do organizowania obiektów blob podobnie jak foldery na komputerze służą do organizowania plików.
Po utworzeniu obiektu kontenera blobClient można utworzyć obiekt blob Block, który wskazuje na konkretny obiekt blob, który cię interesuje. Następnie można wykonywać operacje, takie jak przekazywanie, pobieranie i kopiowanie.
Ważne
Nazwy kontenerów muszą być zapisane małymi literami. Aby uzyskać więcej informacji na temat nazw kontenerów i obiektów blob, zobacz Nazewnictwo i odwoływanie się do kontenerów, obiektów blob i metadanych .
W tej sekcji skonfigurujesz instancję klienta usługi Azure Storage, zainicjujesz instancję usługi Blob Service, utworzysz nowy kontener i ustawisz uprawnienia do kontenera, aby obiekty blob były publiczne. Kontener nosi nazwę 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);
Przekazywanie obiektów blob do kontenera
Usługa Blob Storage obsługuje bloby blokowe, dopisywalne i stronicowe. Blokowe obiekty blob są najczęściej używane i są używane w tym przewodniku Szybki start.
Aby załadować plik do obiektu blob, uzyskaj pełną ścieżkę pliku, poprzez połączenie nazwy katalogu z nazwą pliku na dysku lokalnym. Następnie możesz przekazać plik do określonej ścieżki przy użyciu metody createBlockBlob().
Przykładowy kod pobiera plik lokalny i przekazuje go na platformę Azure. Plik jest przechowywany jako myfile i nazwa obiektu blob jako fileToUpload w kodzie. Poniższy przykład przekazuje plik do kontenera o nazwie 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);
Aby wykonać częściową aktualizację zawartości blokowego obiektu blob, użyj metody createblocklist(). Blokowe elementy blob mogą mieć nawet 4,7 TB pojemności i mogą zawierać wszystko, od arkuszy kalkulacyjnych programu Excel, a także duże pliki wideo. Stronicowe obiekty blob są używane głównie dla plików VHD używanych do tworzenia kopii zapasowych maszyn wirtualnych IaaS. Uzupełnialne obiekty blob są używane do rejestrowania, na przykład w sytuacji, w której konieczny jest zapis do pliku, a następnie dodawanie kolejnych informacji. Obiekty blob z możliwością dołączania powinny być używane w modelu pojedynczego zapisywania. Większość obiektów przechowywanych w magazynie obiektów blob to bloby blokowe.
Wyświetl listę blobów w kontenerze
Listę plików w kontenerze można uzyskać przy użyciu metody listBlobs(). Poniższy kod pobiera listę obiektów blob, a następnie iteruje przez nie, pokazując nazwy obiektów blob znalezionych w kontenerze.
$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());
Uzyskaj zawartość swoich blobów
Pobierz zawartość obiektów blob przy użyciu metody getBlob(). Poniższy kod wyświetla zawartość obiektu blob przekazanego w poprzedniej sekcji.
$blob = $blobClient->getBlob($containerName, $fileToUpload);
fpassthru($blob->getContentStream());
Uprzątnij zasoby
Jeśli nie potrzebujesz już obiektów blob załadowanych w tym przewodniku Szybkiego startu, możesz usunąć cały kontener, korzystając z metody deleteContainer(). Jeśli utworzone pliki nie są już potrzebne, użyj metody deleteBlob(), aby usunąć pliki.
// 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);
Zasoby do tworzenia aplikacji w języku PHP z obiektami blob
Zapoznaj się z następującymi dodatkowymi zasobami na potrzeby programowania w języku PHP za pomocą usługi Blob Storage:
- Wyświetlanie, pobieranie i instalowanie kodu źródłowego biblioteki klienta PHP dla usługi Azure Storage w usłudze GitHub.
- Zapoznaj się z przykładami usługi Blob Storage napisanymi przy użyciu biblioteki klienta PHP.
Dalsze kroki
W tym przewodniku Szybki start przedstawiono sposób przesyłania plików między dyskiem lokalnym i usługą Azure Blob Storage przy użyciu języka PHP. Aby dowiedzieć się więcej na temat pracy z językiem PHP, przejdź do centrum deweloperów języka PHP.
Aby uzyskać więcej informacji na temat Eksploratora usługi Storage i obiektów blob, zobacz Zarządzanie zasobami usługi Azure Blob Storage za pomocą Eksploratora usługi Storage.