Gaufrette在AmazonS3上传图像和存储

时间:2013-01-29 19:53:22

标签: php symfony symfony-2.1

我正在使用捆绑https://github.com/KnpLabs/Gaufrette,这是我的配置:

knp_gaufrette: 
    adapters:
        someadapter:
            amazon_s3:
                amazon_s3_id: service.amazon.s3
                bucket_name: %amazon.s3.bucket_name%
                create: true
    filesystems:
        somefilesystem:
            adapter: someadapter

我有一个上传文件的表单。我的问题是文件上传到/ tmp / file目录,然后我试图将此文件移动到亚马逊:

$filesystem->get('somefilesystem')->rename($tmpPath , $destinyPath);

抛出异常:

The file "/tmp/phpR4YbZN" was not found.

这是有道理的,因为该文件尚未在亚马逊中,我正在处理该文件系统。但我想知道如何从我的本地文件系统上传文件到AmazonS3。

感谢!!!

1 个答案:

答案 0 :(得分:4)

你想做这样的事吗? :

$filesystemMap
   ->get('somefilesystem')
   ->write($destinyPath, file_get_contents($tmpPath))
;`

请注意,write方法有第三个“覆盖”参数(默认情况下为 false )。

您可以注册流包装器并像普通的php文件AP​​I /函数一样工作。有关详细信息,请参阅https://github.com/KnpLabs/KnpGaufretteBundle#stream-wrapper