当前位置: 首页 > 工具软件 > Qiniu PHP SDK > 使用案例 >

七牛云多文件打包压缩采用composer 的qiniu/php-sdk扩展

蒲德曜
2023-12-01
use Qiniu\Auth;
use Qiniu\Processing\PersistentFop;


    // 加入消息队列
    public function job()
    {
        //七牛云压缩文件测试

        $accessKey = '七牛云的accessKey';
        $secretKey = '七牛云的secretKey';

        $auth = new Auth($accessKey, $secretKey);

        // 要压缩的文件所在的空间和文件名
        $bucket = '空间名称';
        // 注意这个key 是你空间里现存的文件名称(只是名称 不需要完整的url地址 文件大小必须大于5kb以上)
        $key = '你空间里面任意一个文件名称';

        // 用户默认没有私有队列,需要在这里创建然后填写                             
        // https://portal.qiniu.com/dora/media-gate/pipeline 创建队列路径
        $pipeline = 'sdktest';

        $pfop = new PersistentFop($auth, null);

        // 进行 zip 压缩的 文件路径 完整的 url
        $url1 = '文件url';
        $url2 = '文件url';

        // 压缩后的 文件名称
        $zipKey = 'kerry.zip';

        $fops = 'mkzip/2/url/' . \Qiniu\base64_urlSafeEncode($url1);
        $fops .= '/url/' . \Qiniu\base64_urlSafeEncode($url2);
        $fops .= '|saveas/' . \Qiniu\base64_urlSafeEncode("$bucket:$zipKey");

        // 处理完成后通知到你的业务服务器(需要可以公网访问,并能够相应 200 OK)
        $notify_url = null;

        // 当转码后的文件名与源文件名相同时,是否覆盖源文件
        $force = false;

        list($id, $err) = $pfop->execute($bucket, $key, $fops, $pipeline, $notify_url, $force);


        echo "\n====> pfop mkzip result: \n";

        if ($err != null) {
            dump((array)$err);
        } else {
            echo "PersistentFop Id: $id\n";
        }

        // 查询转码的进度和状态
        list($ret, $err) = $pfop->status($id);
        echo "\n====> pfop mkzip status: \n";
        if ($err != null) {
            echo '---------';
            halt($err);
        } else {
            halt($ret);
        }
    }

今天测试了七牛云的多文件压缩打包下载,使用的composer qiniu/php-sdk里面的方法其中遇到了一些坑

比如说 $key 是指你当前存储的空间里面任意一个文件的名字,并且该文件必须大于5kb以上 不然一直报错 no such file or directory

当你的key的文件过小,在智能多媒体平台---任务里面 执行队列失败会报错 execute fop cmd failed: source data is empty or fail to get source data 证明你的文件过小

压缩文件的Api文档地址:https://developer.qiniu.com/dora/1667/mkzip

 类似资料: