Azure PHP SDK:下载容器';s所有blob都在一个zip文件中

Azure PHP SDK:下载容器';s所有blob都在一个zip文件中,php,azure,azure-storage,azure-storage-blobs,Php,Azure,Azure Storage,Azure Storage Blobs,我想将指定容器中的所有blob作为zip文件下载。 有没有办法直接从Azure下载它的压缩包,而无需在我的服务器上处理 目前我的想法如下: file_put_contents(“file_name”,get_file_contents($blob_url)) 我将在我的服务器上存储所有文件,然后创建这些文件的zip文件,然后强制下载 Azure没有这样的工具为您生成一个BLOB包的zip文件。Azure存储只是。。。存储您需要通过PHPSDK(或者直接通过api,如果您选择的话)下载每个blob

我想将指定容器中的所有blob作为zip文件下载。 有没有办法直接从Azure下载它的压缩包,而无需在我的服务器上处理

目前我的想法如下:

file_put_contents(“file_name”,get_file_contents($blob_url))


我将在我的服务器上存储所有文件,然后创建这些文件的zip文件,然后强制下载

Azure没有这样的工具为您生成一个BLOB包的zip文件。Azure存储只是。。。存储您需要通过PHPSDK(或者直接通过api,如果您选择的话)下载每个blob

如果您希望压缩内容,则需要在存储到blob存储之前压缩内容

您的代码(在您的问题中)无法按原样工作,因为
get\u file\u contents()
希望使用文件I/O,而这不是如何与blob交互。相反,你应该这样做:

$getBlobResult = $blobClient->getBlob("<containername>", "<blobname>");
file_put_contents("<localfilename>", $getBlobResult->getContentStream());
$getBlobResult=$blobClient->getBlob(“,”);
文件内容(“,$getBlobResult->getContentStream());

谢谢你的回答,顺便说一句,我用我的逻辑和工作方式做到了这一点,代码如下
$file\u url=”https://mysite.blob.core.windows.net/container-name/" . $blob_名称;文件内容($local\u server\u file\u path,file\u get\u contents($file\u url))$zip->addFile($local_server_file_path,$prop_doc['image_name'])如何获取容器中文件夹内的blob?例如:容器名称/文件夹名称/blob@Suraj-我建议单独提问,而不是在评论中提问。但是请注意,使用Azure存储Blob时没有“文件夹”;由于
/
字符,它看起来就是这样。因此,您必须基于名称模式进行枚举。