七牛多文件压缩

Posted xiaoquangege

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了七牛多文件压缩相关的知识,希望对你有一定的参考价值。

公司一个项目,需要用到七牛的多文件压缩功能,看了文档,有点懵,网上查代码,也没找到C#相关的,最后提了工单,在工程师的帮助下解决了这个问题。

            Mac mac = new Mac(AK, SK);
            Config config = new Config();
            OperationManager operationManager = new OperationManager(mac, config);
            //tmpImgUrl是在七牛已经存在的图片地址,后面是随机的一个图片名称,压缩包用的。
            string fops = "mkzip/2/url/" + Base64.UrlSafeBase64Encode(tmpImgUrl) + "/alias/" + Base64.UrlSafeBase64Encode(getRandomName());
            fops += "
/url/" + Base64.UrlSafeBase64Encode(tmpImgUrl2) + "/alias/" + Base64.UrlSafeBase64Encode(getRandomName());
            fops += "
/url/" + Base64.UrlSafeBase64Encode(tmpImgUrl3) + "/alias/" + Base64.UrlSafeBase64Encode(getRandomName());
            fops += "|saveas/" + Base64.UrlSafeBase64Encode(bucket + ":abc/down6.zip");//这里abc是设定下载文件的目录,down6是下载文件名称
            // 私有隊列名
            string pipeline = null;
            string notifyUrl = "http://api.example.com/qiniu/pfop/notify";//这是压缩成功的一个回调方法,我不需要使用,可以设置为空。

            // 文件名
            string key = "2018/07/12/1722443513";//这个比较坑,必须给一个目录已经存在的地址,随便给一个都行,这是pfop接口规格的强制要求
            // 当服务端发现 fops 指定的数据处理结果已经存在,那就认为已经处理成功,避免重复处理浪费资源。加上本字段并设为 1,则可强制执行数据处理并覆盖原结果。
            bool force = true;
            PfopResult pfopRet = operationManager.Pfop(bucket, key, fops, pipeline, notifyUrl, force);
            if (pfopRet.Code != (int)HttpCode.OK)//200表示成功,否则就看报错信息
            {
                Console.WriteLine("pfop error: " + pfopRet.ToString());
            }

另外,七牛提供的最新nuget包没有.net core的,所以这又是一个比较尴尬的事情。

现在这个是基于七牛的nuget包7.3.1.1

以上是关于七牛多文件压缩的主要内容,如果未能解决你的问题,请参考以下文章

如何上传图片到七牛云

Python在七牛云平台的应用图片瘦身

如何将图片上传到七牛云平台?

python颜色压缩的结果颜色比保存颜色深

如何自动上传文件到七牛云

Thinkphp使用PCLZIP 如何打包远程文件