2017-09-20 52 views
2

我想從指定容器中將所有blob作爲zip文件下載。 有沒有辦法直接從Azure下載它的zip文件,無需在我的服務器上處理它?Azure PHP SDK:將容器的所有blob下載到單個zip文件中

目前我認爲像如下:

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

我將所有文件存儲在我的服務器上,然後創建者的壓縮文件,然後將強制下載。 。

回答

1

Azure沒有這樣的工具可以爲您爲一捆斑點生成zip文件。 Azure存儲只是...存儲。你需要通過php sdk下載你的每個blob(或者如果你願意,可以直接通過api來下載)。

如果您希望將內容zip'd,則需要先將內容壓縮到存儲在BLOB存儲中之前。

由於get_file_contents()預計可以與文件I/O一起工作,所以您的代碼(在您的問題中)將不會按原樣工作,但這不是與blob交互的方式。相反,你會做這樣的事情:

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

謝謝您的回答, 通過我與我的邏輯和工作所採取的方式,代碼如下 '$ 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

並且還嘗試了你的代碼工作很酷。謝謝 –