nnmer/qiniu-bundle

此包最新版本(dev-master)的许可信息不可用。

Symfony2(3) 与 七牛 (Qiniu) CDN 服务的集成包

dev-master 2017-09-04 03:23 UTC

This package is not auto-updated.

Last update: 2024-09-25 01:12:09 UTC


README

此包的目的是帮助与 七牛 CDN 服务协同工作。

包的开发正在进行中,文档将相应更新。

安装与配置

注意:此包不提供任何与七牛前端相关的代码。

  1. 安装: composer require nnmer/qiniu-bundle

  2. 将包添加到 AppKernel.php

 ...
 new Nnmer\QiniuBundle(),
 ...
  1. 在 config.yml 中添加包配置
nnmer_qiniu:
    accessKey: xxxxxxx
    secretKey: yyyyyyy
    defaultBucket: a1
    initiateAdapters:
        - gaufrette
    buckets: # is an array of the buckets, later each of them will be available as a service. Should be at least 1 provided
        - a1
        - b2
  1. 添加到你的路由
qiniu_processing_results:
    resource: "@NnmerQiniuBundle/Controller/QiniuCallbackController.php"
    type:     annotation
    prefix:   /
  1. 如果你在 Symfony 的防火墙后面,那么请添加到你的 security.yml access_control 部分
- { path: ^/qiniu-callback-url, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/qiniu-persistence-notify-url, role: IS_AUTHENTICATED_ANONYMOUSLY }
  1. 完成。从这一点起,一旦你收到七牛的回调,可以触发以下两个事件,取决于回调
  • QiniuEvents::FILE_UPLOADED
  • QiniuEvents::PERSISTENCE_RESULTS_RECEIVED

事件的内容是回调的有效负载,因此你可以通过监听这些事件并管理有效负载数据来处理你的逻辑

覆盖控制器

如果你想拥有自定义控制器逻辑,则执行以下操作之一

  • 扩展 QiniuCallbackController 类(这将为你提供现有的 2 个回调定义)
  • 实现 QiniuCallbackControllerInterface 接口(你需要为控制器的 2 个回调方法定义内容)

在这种情况下,请记住将路由定义重新指向你的内容,或者如果你自己管理路由定义,则删除它

可用服务

注意:服务中的存储桶名称从原始名称重命名为:所有的 - 都被替换为 _

容器构建后,可用的以下服务

nnmer_qiniu.*_service,其中 * 是每个 buckets

以及 nnmer_qiniu.service,它是 defaultBucket 的服务别名

如果安装了 KnpGaufretteBundle 且 nnmer_qiniu.initiateAdaptersgaufrette 作为数组元素,则还会生成以下附加服务

nnmer_qiniu.gaufrette_*_adapter,其中 * 是每个 buckets

Twig 辅助函数

downloadUrl(url, service) - 用于构建下载链接,签名并带有时间过期。 service 是所需服务的 id。(在控制器中,别名为 $this->container->get('service id here')->getAuth()->privateDownloadUrl($url))