nnmer / qiniu-bundle
Symfony2(3) 与 七牛 (Qiniu) CDN 服务的集成包
Requires
- qiniu/php-sdk: dev-master
This package is not auto-updated.
Last update: 2024-09-25 01:12:09 UTC
README
此包的目的是帮助与 七牛 CDN 服务协同工作。
包的开发正在进行中,文档将相应更新。
安装与配置
注意:此包不提供任何与七牛前端相关的代码。
-
安装:
composer require nnmer/qiniu-bundle -
将包添加到 AppKernel.php
... new Nnmer\QiniuBundle(), ...
- 在 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
- 添加到你的路由
qiniu_processing_results: resource: "@NnmerQiniuBundle/Controller/QiniuCallbackController.php" type: annotation prefix: /
- 如果你在 Symfony 的防火墙后面,那么请添加到你的 security.yml access_control 部分
- { path: ^/qiniu-callback-url, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/qiniu-persistence-notify-url, role: IS_AUTHENTICATED_ANONYMOUSLY }
- 完成。从这一点起,一旦你收到七牛的回调,可以触发以下两个事件,取决于回调
QiniuEvents::FILE_UPLOADEDQiniuEvents::PERSISTENCE_RESULTS_RECEIVED
事件的内容是回调的有效负载,因此你可以通过监听这些事件并管理有效负载数据来处理你的逻辑
覆盖控制器
如果你想拥有自定义控制器逻辑,则执行以下操作之一
- 扩展
QiniuCallbackController类(这将为你提供现有的 2 个回调定义) - 实现
QiniuCallbackControllerInterface接口(你需要为控制器的 2 个回调方法定义内容)
在这种情况下,请记住将路由定义重新指向你的内容,或者如果你自己管理路由定义,则删除它
可用服务
注意:服务中的存储桶名称从原始名称重命名为:所有的 - 都被替换为 _
容器构建后,可用的以下服务
nnmer_qiniu.*_service,其中 * 是每个 buckets
以及 nnmer_qiniu.service,它是 defaultBucket 的服务别名
如果安装了 KnpGaufretteBundle 且 nnmer_qiniu.initiateAdapters 有 gaufrette 作为数组元素,则还会生成以下附加服务
nnmer_qiniu.gaufrette_*_adapter,其中 * 是每个 buckets
Twig 辅助函数
downloadUrl(url, service) - 用于构建下载链接,签名并带有时间过期。 service 是所需服务的 id。(在控制器中,别名为 $this->container->get('service id here')->getAuth()->privateDownloadUrl($url))