标签: gaufrette

使用带有AsseticBundle的Gaufrette Stream Wrappers

我正在尝试使用Gaufrette Stream Wrapper告诉AsseticBundle转储项目资产的位置,但我不能让它识别它们.

这是我的config_dev.yml的knp_gaufrette部分的样子:

knp_gaufrette:
    adapters:
        dev_adapter:
            local:
                directory: /vagrant/test
                create: true

    filesystems:
        dev_adapter:
            adapter: dev_adapter

    stream_wrapper: ~
Run Code Online (Sandbox Code Playgroud)

我使用一个简单的操作测试了包装器,以确保它已正确注册,并且它工作正常:

public function thanksAction()
{
    file_put_contents('gaufrette://dev_adapter/test.txt', "ABC\n", FILE_APPEND);

    return new Response(file_get_contents('gaufrette://dev_adapter/test.txt'));
}
Run Code Online (Sandbox Code Playgroud)

然后我像这样设置资产包配置(在config_dev.yml中):

assetic:
    read_from: gaufrette://dev_adapter
    write_to: gaufrette://dev_adapter
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用console assetic:dump --env=dev我转储资产时出现此错误:

Dumping all dev assets.
Debug mode is on.

10:53:28 [dir+] gaufrette://dev_adapter/css



  [RuntimeException]                                      
  Unable to create directory gaufrette://dev_adapter/css  



assetic:dump [--watch] [--force] [--period="..."] [write_to]
Run Code Online (Sandbox Code Playgroud)

更多的信息:

symfony/symfony:2.5.0
symfony/assetic-bundle:2.3.0
knplabs/knp-gaufrette-bundle:0.1.7

php symfony assetic gaufrette

8
推荐指数
1
解决办法
1084
查看次数

AmazonS3 + KnpGaufretteBundle如何为文件设置公共acl?

我正在使用KnpGaufretteBundle在Amazon S3上存储图片,我可以使用以下代码轻松创建文件:

public function s3CreatFileAction(Request $request) {

   $filesystem = $this->get('knp_gaufrette.filesystem_map')->get('profile_photos');
   $filesystem->write('test.txt', 'hello world');

   [...]
}
Run Code Online (Sandbox Code Playgroud)

问题是我无法访问该文件...

$filesystem = $this->get('knp_gaufrette.filesystem_map')->get('profile_photos');
$file = $filesystem->get('test.txt');
Run Code Online (Sandbox Code Playgroud)

我收到以下消息:

找不到文件"test.txt".

我认为这是因为"test.txt"文件是使用"私有"acl创建的(当我将其公开时,我可以访问它的S3控制台).

所以我的问题是如何在创建对象时定义公共acl?

acl amazon-s3 symfony gaufrette

7
推荐指数
1
解决办法
1881
查看次数

带Gaufrette的Symfony音频流

我正在使用KnpGaufretteBundle来存储音频文件.我能够将给定文件下载到客户端,如下所示:

    $filename = "Somefilename.mp3";

    $fs = $this->filesystemMap->get('media_fs');
    $file = $fs->read($filename);

    if($file){
        //Create And Return Response
        $response = new Response();

        $disp = $response->headers->makeDisposition(
            ResponseHeaderBag::DISPOSITION_ATTACHMENT, 
            $variant->getFileName()
        );

        $response->headers->set('Content-Length', $fs->size($filename));
        $response->headers->set('Accept-Ranges', 'bytes');
        $response->headers->set('Content-Transfer-Encoding', 'binary');
        $response->headers->set('Content-Type', 'application/octet-stream');
        $response->headers->set('Content-Disposition', $disp);
        $response->setContent($file);

        return $response;
    }
Run Code Online (Sandbox Code Playgroud)

但是现在我还想将文件流式传输到客户端,而不是使用附件内容配置.基本上我想访问它客户端,就好像我指着我的服务器上的实际mp3.有谁知道如何做到这一点?

symfony gaufrette

5
推荐指数
1
解决办法
1349
查看次数

尝试使用gaufrette上传到S3时出错

我正在尝试使用KNPLabs gaufrette包将图像文件上传到S3.我从S3调试响应时收到以下错误:

The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.

images.mynamespace.com.s3.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

我已经尝试将base_url参数设置为该端点但仍然得到相同的错误.关于SO的其他问题建议设置我也尝试过的区域.

我试图上传的存储桶位于欧盟西部地区(爱尔兰).无论我尝试什么配置,gaufrette似乎仍然试图使用s3.amazonaws.com

如何正确配置gaufrette?

config.yml:

knp_gaufrette:
    adapters:
        image_storage:
            amazon_s3:
                amazon_s3_id: mynamespace_admin.amazon_s3
                bucket_name:  %amazon_s3_bucket_name%
                create:       false
                options:
                    create:     true
                    directory: 'dirname'
                    region:     eu-west-1


    filesystems:
        image_storage:
            adapter:    image_storage
            alias:      image_storage_filesystem
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services symfony gaufrette symfony-2.4

4
推荐指数
1
解决办法
713
查看次数