Zend_Cloud_Storage如何将文件发送到浏览器?

时间:2012-06-12 22:45:44

标签: php zend-framework file-io cloud cloud-storage

我想将我的资产存储在云中。我以为Zend_Cloud_Storage可能是正确的库?现在,使用Zend_Cloud_StorageService_Adapter_Filesystem在本地保存它们。到目前为止上传工作。

将文件从Zend_Cloud_StorageService_Adapter_Filesystem发送到浏览器的正确方法是什么?我想这只能通过php流式传输吗?如果是,那里有任何代码示例,因为我在使用所有文件头时遇到问题。

使用S3我可能会重定向或直接将文件链接到s3存储桶?

我对云存储很陌生,所以我非常感谢你的帮助。

亲切的问候,曼努埃尔

1 个答案:

答案 0 :(得分:1)

Zend Cloud服务相当新,根据我的经验,文档仍需要一些工作。根据云服务,您可以选择获取对象并将其提供给用户,或者在某些情况下,您可以为用户提供资产的直接URL(这在很大程度上取决于您是否需要控制对象的访问权限) )。

要以编程方式获取项目,您应该能够使用正确的标题,例如:

$image = $storage->fetchItem("/my/remote/path/picture.jpg");
header("content-type: image/jpg");
echo file_get_contents($image);

理论上,您可以从元数据中获取标头的内容类型,但我不确定它们在适配器之间是否一致。

直接关联取决于您的云。对于文件系统,您应该知道文件所在的路径,因此如果可以访问文件,则可以从那里进行链接。在亚马逊,您可以在上传文件时将权限设置为公开 - S3 doco here中有一个示例。

我建议看一下Zend Service S3 doco,Zend Cloud只是它的包装器,并试图通用它会失去很多功能。如果你在任何时间内使用它,我怀疑你最终会直接打电话给服务。

祝你好运!