七牛云——多文件压缩(文件名乱码解决方案)

多文件压缩mkzip 文件名乱码
  • 李永超  2017-03-21 22:02

    参考官方多文件压缩接口教程(https://developer.qiniu.com/dora/api/mkzip)。发现使用英文命名的文件可用正常打包成zip压缩包,但是如果要把以中文命名的文件打包成zip,压缩后的zip里的以中文命名的文件的文件名就会乱码。

  • liuluyao  2017-03-21 23:46

    您好,麻烦提供下压缩作业的persistentId,这边看下

  • 李永超  2017-03-22 09:35

    压缩作业的persistentId是: z0.58d1d48f45a2650c99e767e6

  • chenkaiwen  2017-03-22 10:02

    您好,尝试更换一下编码格式,gbk 和 utf-8 都试一下:

    https://developer.qiniu.com/dora/api/mkzip

  • 李永超  2017-03-22 10:30

    使用gbk编码

    1. mkzip/<mode>
    2. /encoding/<UrlsafeBase64EncodedEncoding>
    3. /url/<Base64EncodedURL1>[/alias/<Base64EncodedAlias1>]
    4. /url/<Base64EncodedURL2>[/alias/<Base64EncodedAlias2>]


    其中 /encoding/这个怎么使用,每个文件都要拼接吗?    


    我之前压缩后的文件,只要文件名乱码,文件内容没有乱码



    "附件":QQ截图20170322102954.png •  下载
  • chenkaiwen  2017-03-22 10:41

    您好,每个文件都要拼接。

  • 李永超  2017-03-22 13:39

    /encoding/这个具体怎么使用?


    "附件":QQ截图20170322133814.png •  下载
  • chenkaiwen  2017-03-22 14:52

    您好,就是把 gbk 做 base64 编码后,写到 /encoding/ 后面,再拼接其他命令。

  • 李永超  2017-03-22 15:14

    接口OperationManager.pfop(String bucket,String key,String fops,StringMap params)中fops的实参值为

    mkzip/2/url/encoding/Z2Jr/aHR0cDovL29pdnIwMWpjMC5ia3QuY2xvdWRkbi5jb20vMjE3MDMyMDMzMTAwMF8xMzQ3LnJhcj9lPTE0OTAxNjk4NzEmdG9rZW49T3FuRHZjbWZWXzZzakRXdlpHalI1VG5sOVkzM1RfUlN3Z21wbzE1RzpBSVJ5TmRtMG9NdHFEa2pFUmxFRUczVV9Ibkk9/url/encoding/Z2Jr/aHR0cDovL29pdnIwMWpjMC5ia3QuY2xvdWRkbi5jb20vZXhjZWxc5Y6m6Zeo5biCLeS4ieWFseWwj-S4jS0xTS0yMTcwMzIwMzMxMDAwLnhsc3g_ZT0xNDkwMTY5ODgyJnRva2VuPU9xbkR2Y21mVl82c2pEV3ZaR2pSNVRubDlZMzNUX1JTd2dtcG8xNUc6VW1BeFcxMVphX0U1bHh5UFJVNmwxamg5TmlRPQ==|saveas/cWlqaWEtcHJpdmF0ZS1kZXNpZ246cHJpbnQvcGFjay8yMTcwMzIwMzMxMDAwLnppcA==


    我不知道是不是我的代码写错了,还是什么的。最终文件下载,显示{"error":"Document not found"}


  • 李永超  2017-03-22 15:15

    代码如下

    StringBuffer sb = new StringBuffer();
    sb.append("/url/").append("encoding/"+UrlSafeBase64.encodeToString("gbk")+"/")
    .append(UrlSafeBase64.encodeToString(wholeImgStr));
    // 别名使用无效
    /*.append("/alias/")
    .append(UrlSafeBase64.encodeToString(aliasImgStr));*/
    return sb.toString();
  • chenkaiwen  2017-03-22 15:20

    您好,您发一下处理的 persistentID ,这边看下是否处理成功了。

  • 李永超  2017-03-22 15:52

    z0.58d22d3045a2650c99ef3b5d

  • chenkaiwen  2017-03-22 15:57

    您好,这个处理没有成功,用这个处理命令试一下吧:

    mkzip/2/encoding/Z2Jr/url/aHR0cDovL29pdnIwMWpjMC5ia3QuY2xvdWRkbi5jb20vMjE3MDMyMDMzMTAwMF8xMzQ3LnJhcj9lPTE0OTAxNjk4NzEmdG9rZW49T3FuRHZjbWZWXzZzakRXdlpHalI1VG5sOVkzM1RfUlN3Z21wbzE1RzpBSVJ5TmRtMG9NdHFEa2pFUmxFRUczVV9Ibkk9/url/aHR0cDovL29pdnIwMWpjMC5ia3QuY2xvdWRkbi5jb20vZXhjZWxc5Y6m6Zeo5biCLeS4ieWFseWwj-S4jS0xTS0yMTcwMzIwMzMxMDAwLnhsc3g_ZT0xNDkwMTY5ODgyJnRva2VuPU9xbkR2Y21mVl82c2pEV3ZaR2pSNVRubDlZMzNUX1JTd2dtcG8xNUc6VW1BeFcxMVphX0U1bHh5UFJVNmwxamg5TmlRPQ==|saveas/cWlqaWEtcHJpdmF0ZS1kZXNpZ246cHJpbnQvcGFjay8yMTcwMzIwMzMxMDAwLnppcA==


    请严格按照文档要求写处理命令。

  • 李永超  2017-03-22 16:51

    mkzip/2/encoding/Z2Jr/url/aHR0cDovL29pdnIwMWpjMC5ia3QuY2xvdWRkbi5jb20vMjE3MDMyMDMzMTAwMF8xMzQ3LnJhcj9lPTE0OTAxNzYxOTMmdG9rZW49T3FuRHZjbWZWXzZzakRXdlpHalI1VG5sOVkzM1RfUlN3Z21wbzE1RzpiT1R3clZHNEJXSlYwRW1CWC02TUhWTU9LOTQ9/url/aHR0cDovL29pdnIwMWpjMC5ia3QuY2xvdWRkbi5jb20vZXhjZWxc5Y6m6Zeo5biCLeS4ieWFseWwj-S4jS0xTS0yMTcwMzIwMzMxMDAwLnhsc3g_ZT0xNDkwMTc2MTkzJnRva2VuPU9xbkR2Y21mVl82c2pEV3ZaR2pSNVRubDlZMzNUX1JTd2dtcG8xNUc6aXdidWlqMG44VlZvNWlkUGZSY2FUdVNCSjF3PQ==|saveas/cWlqaWEtcHJpdmF0ZS1kZXNpZ246cHJpbnQvcGFjay8yMTcwMzIwMzMxMDAwLnppcA==


    我改了,文件可以打包了,但文件名还是乱码

  • chenkaiwen  2017-03-22 17:06

    您好,用/alias/<Base64EncodedAlias2> 指定别名试试。

  • 李永超  2017-03-22 17:56

    可以了,非常感谢!!!


    
    
    fopsSb.append("/alias/"+ UrlSafeBase64.encodeToString(filePath.getBytes("gb2312")));//使用别名,防止七牛云多文件压缩中文文件乱码

你可能感兴趣的:(七牛云,第三方平台)