七牛雲——多文件壓縮(文件名亂碼解決方案)

多文件壓縮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/<UrlsafeBase64EncodeEncoding>這個怎麼使用,每個文件都要拼接嗎?    


    我之前壓縮後的文件,只要文件名亂碼,文件內容沒有亂碼



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

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

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

    /encoding/<UrlsafeBase64EncodeEncoding>這個具體怎麼使用?


    "附件":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")));//使用別名,防止七牛雲多文件壓縮中文文件亂碼
發佈了65 篇原創文章 · 獲贊 30 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章