Transférer des objets vers/depuis le stockage Blob Azure à l’aide de PHP
Dans ce guide de démarrage rapide, vous allez apprendre à utiliser PHP pour téléverser, télécharger et répertorier des objets blob de type bloc dans un conteneur du stockage Blob Azure.
Conditions préalables
Pour accéder à Stockage Azure, vous avez besoin d’un abonnement Azure. Si vous n’avez pas d’abonnement, vous pouvez créer un compte gratuit avant de commencer.
Tous les accès à Stockage Azure se font via un compte de stockage. Pour ce guide de démarrage rapide, créez un compte de stockage à l’aide du portail Azure, d’Azure PowerShell ou de l’interface Azure CLI. Pour obtenir de l’aide sur la création d’un compte de stockage, consultez Créer un compte de stockage.
Vérifiez que les conditions préalables supplémentaires suivantes sont installées :
Téléchargement de l'exemple d'application
L’exemple d’application utilisé dans ce guide de démarrage rapide est une application PHP de base.
Utilisez git pour télécharger une copie de l’application dans votre environnement de développement.
git clone https://github.com/Azure-Samples/storage-blobs-php-quickstart.git
Cette commande clone le dépôt dans votre dossier git local. Pour ouvrir l’exemple d’application PHP, recherchez le dossier de démarrage rapide storage-blobs-php-quickstart, puis ouvrez le fichier phpqs.php.
Copier vos informations d’identification depuis le portail Azure
L’exemple d’application doit autoriser l’accès à votre compte de stockage. Fournissez les informations d’identification de votre compte de stockage à l’application sous la forme d’une chaîne de connexion. Pour afficher les informations d’identification de votre compte de stockage :
Dans la section Paramètres de la vue d’ensemble du compte de stockage, sélectionnez clés d’accès pour afficher les clés d’accès et la chaîne de connexion de votre compte.
Notez le nom de votre compte de stockage, dont vous aurez besoin pour l’autorisation.
Recherchez la valeur clé sous clé1, puis sélectionnez Copier pour copier la clé de compte.
capture d’écran
Configurer votre chaîne de connexion de stockage
Dans l’application, vous devez fournir le nom de votre compte de stockage et la clé de compte pour créer l’instance BlobRestProxy pour votre application. Il est recommandé de stocker ces identificateurs dans une variable d’environnement sur l’ordinateur local exécutant l’application. Utilisez l’un des exemples suivants en fonction de votre système d’exploitation pour créer la variable d’environnement. Remplacez les valeurs par votre nom de compte et par votre clé de compte.
Configurer votre environnement
Prenez le dossier à partir de votre dossier git local et placez-le dans un répertoire servi par votre serveur PHP. Ensuite, ouvrez une invite de commandes délimitée à ce même répertoire et entrez : php composer.phar install
Exécuter l’exemple
Cet exemple crée un fichier de test dans le dossier « . ». L’exemple de programme charge le fichier de test dans Blob storage, répertorie les blobs dans le conteneur, et télécharge le fichier avec un nouveau nom.
Exécutez l’exemple. La sortie suivante est un exemple de sortie retournée lors de l’exécution de l’application :
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!
Lorsque vous appuyez sur le bouton affiché, l’exemple de programme supprime le conteneur de stockage et les fichiers. Avant de continuer, vérifiez le dossier de votre serveur pour les deux fichiers. Vous pouvez les ouvrir et voir qu’ils sont identiques.
Vous pouvez également utiliser un outil comme l’Explorateur Stockage Azure pour afficher les fichiers dans Stockage Blob. L’Explorateur Stockage Azure est un outil multiplateforme gratuit qui vous permet d’accéder aux informations de votre compte de stockage.
Une fois que vous avez vérifié les fichiers, appuyez sur n’importe quelle clé pour terminer la démonstration et supprimer les fichiers de test. Maintenant que vous savez ce que fait l’exemple, ouvrez le fichier example.rb pour examiner le code.
Comprendre l’exemple de code
Ensuite, nous allons parcourir l’exemple de code pour vous permettre de comprendre son fonctionnement.
Obtenir des références aux objets de stockage
La première chose à faire est de créer les références aux objets utilisés pour accéder et gérer le stockage d’objets blob. Ces objets s’appuient les uns sur les autres, et chacun est utilisé par le suivant dans la liste.
- Créez une instance du stockage Azure Objet BlobRestProxy pour configurer les informations d’identification de connexion.
- Créez l’objet BlobService pointant vers le service Blob dans votre compte de stockage.
- Créez l’objet Container, qui représente le conteneur auquel vous accédez. Les conteneurs sont utilisés pour organiser vos blobs comme des dossiers sur votre ordinateur pour organiser vos fichiers.
Une fois que vous avez l’objet conteneur blobClient, vous pouvez créer l’objet blob Block pointant vers l’objet blob spécifique qui vous intéresse. Vous pouvez ensuite effectuer des opérations telles que le chargement, le téléchargement et la copie.
Important
Les noms de conteneurs doivent être en minuscules. Pour plus d'informations sur les noms de conteneurs, d'objets blob et de métadonnées, consultez les sections et concernant la dénomination et la référence des conteneurs et des objets blob.
Dans cette section, vous configurez une instance du client de stockage Azure, instanciez l’objet de service blob, créez un conteneur et définissez des autorisations sur le conteneur afin que les objets blob soient publics. Le conteneur est appelé 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);
Transférer les blobs vers le conteneur
Stockage Blob supporte les blobs de blocs, d'ajout et de pages. Les blobs de blocs sont les plus couramment utilisés et sont ceux utilisés dans ce guide de démarrage rapide.
Pour charger un fichier dans un blob, obtenez le chemin complet du fichier en joignant le nom du répertoire et le nom du fichier sur votre lecteur local. Vous pouvez ensuite charger le fichier dans le chemin spécifié à l’aide de la méthode createBlockBlob().
L’exemple de code prend un fichier local et le charge sur Azure. Le fichier est stocké sous le nom myfile, et le nom du blob est fileToUpload dans le code. L’exemple suivant télécharge le fichier dans votre conteneur appelé 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);
Pour effectuer une mise à jour partielle du contenu d’un objet blob de blocs, utilisez la méthode createblocklist(). Les blobs peuvent être aussi volumineux que 4,7 To et peuvent aller de feuilles de calcul Excel à des fichiers vidéo volumineux. Les objets blob de pages sont principalement utilisés pour les fichiers VHD utilisés pour soutenir les machines virtuelles IaaS. Les objets blob d’ajout sont utilisés pour la journalisation, par exemple, quand vous voulez écrire dans un fichier et continuer à ajouter d’autres informations. L’objet blob d’ajout doit s'utiliser dans un modèle d’un seul auteur. La plupart des objets stockés dans le stockage Blob sont des blocs Blob.
Répertorier les blobs dans un conteneur
Vous pouvez obtenir une liste de fichiers dans le conteneur à l’aide de la méthode listBlobs(). Le code suivant récupère la liste des objets blob, puis les parcoure en boucle, montrant les noms des objets blob trouvés dans un conteneur.
$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());
Obtenez le contenu de vos objets blob
Obtenez le contenu de vos blobs, à l'aide de la méthode getBlob(). Le code suivant affiche le contenu de l’objet blob chargé dans une section précédente.
$blob = $blobClient->getBlob($containerName, $fileToUpload);
fpassthru($blob->getContentStream());
Nettoyer les ressources
Si vous n’avez plus besoin des blobs téléchargés dans ce quickstart, vous pouvez supprimer l’intégralité du conteneur à l’aide de la méthode deleteContainer(). Si les fichiers créés ne sont plus nécessaires, vous utilisez la méthode deleteBlob() pour supprimer les fichiers.
// 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);
Ressources pour le développement d’applications PHP avec des objets blob
Consultez ces ressources supplémentaires pour le développement PHP avec stockage Blob :
- Affichez, téléchargez et installez le code source de la bibliothèque cliente PHP pour Stockage Azure sur GitHub.
- Explorez exemples de stockage BLOB écrits à l’aide de la bibliothèque cliente PHP.
Étapes suivantes
Dans ce guide de démarrage rapide, vous avez appris à transférer des fichiers entre un disque local et un stockage d’objets blob Azure à l’aide de PHP. Pour en savoir plus sur l’utilisation de PHP, passez à notre centre de développement PHP.
Pour plus d’informations sur l’Explorateur stockage et les objets blob, consultez Gérer les ressources de stockage Blob Azure avec l’Explorateur Stockage.