我想将我的资产存储在云中。我以为Zend_Cloud_Storage可能是正确的库?现在,使用Zend_Cloud_StorageService_Adapter_Filesystem在本地保存它们。到目前为止上传工作。
将文件从Zend_Cloud_StorageService_Adapter_Filesystem发送到浏览器的正确方法是什么?我想这只能通过php流式传输吗?如果是,那里有任何代码示例,因为我在使用所有文件头时遇到问题。
使用S3我可能会重定向或直接将文件链接到s3存储桶?
我对云存储很陌生,所以我非常感谢你的帮助。
亲切的问候,曼努埃尔
答案 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只是它的包装器,并试图通用它会失去很多功能。如果你在任何时间内使用它,我怀疑你最终会直接打电话给服务。
祝你好运!