2017-09-20 4 views
2

Je souhaite télécharger tout le blob du conteneur spécifié sous la forme d'un fichier zip. Existe-t-il un moyen de télécharger son zip directement à partir d'Azure, pas besoin de le traiter sur mon serveur?Azure PHP SDK: télécharger tout le blob du conteneur dans un seul fichier zip

Actuellement, je pense comme ci-dessous:

file_put_contents("file_name", get_file_contents($blob_url));

je vais stocker tous les fichiers sur mon serveur, puis créer un fichier zip de ceux et forcera à télécharger. .

Répondre

1

Azure ne dispose pas de cette fonctionnalité pour générer un fichier zip pour un paquet de blobs pour vous. Le stockage Azure est juste ... le stockage. Vous aurez besoin de télécharger chacun de vos blobs via php sdk (ou directement via api si vous le souhaitez).

Et si vous souhaitez que le contenu soit compressé, vous devez le compresser avant de le stocker dans le stockage BLOB.

Votre code (dans votre question) ne fonctionnera pas tel quel, puisque get_file_contents() s'attend à fonctionner avec les E/S de fichiers, et ce n'est pas la façon d'interagir avec les blobs. Au contraire, vous feriez quelque chose comme ceci:

$getBlobResult = $blobClient->getBlob("<containername>", "<blobname>"); 
file_put_contents("<localfilename>", $getBlobResult->getContentStream()); 
+0

Merci pour votre réponse, par la façon dont je l'ai fait avec ma logique et de travail, le code est comme ci-dessous '$ FILE_URL = « https: // mysite.blob.core.windows.net/container-name/ ". $ blob_name; file_put_contents ($ local_server_file_path, file_get_contents ($ file_url)); $ zip-> addFile ($ local_server_file_path, $ prop_doc ['image_name']); ' –

+0

Et aussi essayé votre code qui fonctionne cool. Merci –