【发布时间】:2015-10-08 00:00:13
【问题描述】:
我正在使用 Azure blob 存储在云中存储大量 pdf 和 zip 文件。 我通过 azure sdk for php 访问文件并将文件直接推送给用户(当然用户不应该看到文件来自哪里,所以我不会将他重定向到 Microsoft url)。 我的代码如下所示:
$blobRestProxy = ServicesBuilder::getInstance()->createBlobService($this->azureConfig['connectionString']);
$blob = $blobRestProxy->getBlob($container, $blobName);
$properties = $blobRestProxy->getBlobProperties($container, $blobName);
$size = $properties->getProperties()->getContentLength();
$mime = $properties->getProperties()->getContentType();
$stream = $blob->getContentStream();
header("Pragma:no-cache");
header("Cache-Control: no-cache, must-revalidate");
header("Content-type: $mime");
header("Content-length: $size");
fpassthru($stream);
对于小文件,完全没有问题,对于较大的文件,我得到这个错误:
Fatal error: Out of memory (allocated 93323264) (tried to allocate 254826985 bytes) in \vendors\azure-sdk-for-php\WindowsAzure\Common\Internal\Utilities.php on line 450
有没有更好的方法在用户不认识的情况下通过 php 向用户提供云存储文件?
我已经找到了这个讨论 https://github.com/Azure/azure-sdk-for-php/issues/729,但是 curl 解决方案不起作用。
谢谢!
最好的 格什
【问题讨论】:
标签: php azure out-of-memory azure-blob-storage