dcb9/yii2-qiniu

此包已被废弃且不再维护。未建议替代包。

Yii 框架的七牛云存储集成

安装量: 1,606

依赖者: 1

建议者: 0

安全: 0

星标: 17

关注者: 2

分支: 9

开放问题: 1

类型:yii2-extension

v0.5 2016-10-14 09:53 UTC

This package is not auto-updated.

Last update: 2020-01-24 15:52:24 UTC


README

Yii 框架的七牛云存储集成

Build Status Code Climate Issue Count Latest Stable Version Total Downloads License

变更日志

安装

安装此扩展的首选方式是通过 Composer

运行以下命令之一:

composer require --prefer-dist dcb9/yii2-qiniu

或者添加以下代码到你的 composer.json 的 require 部分:

"dcb9/yii2-qiniu": "*"

配置

要使用此扩展,只需在应用程序配置中添加以下代码

return [
    //....
    'components' => [
        'qiniu' => [
            'class' => 'dcb9\qiniu\Component',
            'accessKey' => 'YOUR_ACCESS_KEY',
            'secretKey' => 'YOUR_SECRET_KEY',
            'disks' => [
                'testBucket' => [
                    'bucket' => 'bucketOnQiniu',
                    'baseUrl' => 'ACCESS_QINIU_URL',
                    'isPrivate' => true,
                    'zone' => 'zone0', // 可设置为 zone0, zone1 @see \Qiniu\Zone
                ],
            ],
        ],
    ],
];

资源操作

资源操作是 Flysystem 的一个扩展,因此所有调用方法与 Flysystem 调用方法一致。

// 获取 Disk
$filesystem = Yii::$app->qiniu->getDisk('testBucket');

$filesystem->has('hello.txt');

// 七牛独有 API
$filesystem->getUrl('hello.txt');  // 获取访问地址

其它所有可调用的 API

上传策略

默认设置 Policy 是使用数组的方式设置,但这种方式对程序员不是很友好,因此创建了一个 Policy 的类,但所有的操作还是跟操作数组一样。

$policy = new \dcb9\qiniu\Policy();
$policy->callbackUrl = '';
$policy->callbackBody = '';

获取 UploadToken

$qiniu = Yii::$app->qiniu;

$diskName = 'testBucket';
$token1 = $qiniu->getUploadToken($diskName);

$key = null;
$expires = 3600;
$policy = new \dcb9\qiniu\Policy();
$policy->callbackUrl = '';
$policy->callbackBody = '';

// Fop @see src/Pfop.php
$policy->persistentOps = \dcb9\qiniu\Pfop::instance()
    ->avthumb('mp4')
    ->wmImage('http://o82pobmde.bkt.clouddn.com/yii2-logo.png')
    ->saveas('testbucket', 'after-ops' . date('Y-m-d H:i:s') . '.mp4')
    ->__toString();
$policy->persistentNotifyUrl = 'http://blog.phpor.me';

$diskName = 'testBucket';
$token2 = $qiniu->getUploadToken($diskName, $key, $expires, $policy);

使用 Token 上传文件

$token = '<TOKEN>'; // @see 获取 UploadToken
$config = ['token' => $token];
$filesystem->writeStream($path, $stream, $config);

$filesystem->write($path, $content, $config);

$filesystem->put($path, $content, $config);

技巧