天逸
天逸
  • 发布:2017-12-08 03:37
  • 更新:2019-10-16 09:47
  • 阅读:1966

【报Bug】plus.downloader.createDownload会对用于download的url进行解码,导致下载失败

分类:HTML5+

详细问题描述
[内容]
plus.downloader会对下载URL进行URLDecode,并最终导致下载失败。

用plus.downloader下载阿里云OSS的鉴权后URL,其中的Signature是URLEncode之后的,发现下载失败,但用浏览器是下载成功的,抓包后发现是由于plus.downloader对下载URL做了解码导致的。

而且实测这个decode并不是一个完整的urldecode实现,比如%25就不会被decode掉。

重现步骤
[步骤]
可使用如下代码验证:

function createDownload(url) {  
    var dtask = plus.downloader.createDownload(url, {}, function ( d, status ) {  
        // 下载完成  
        if ( status == 200 ) {   
            alert( "Download success: " + d.filename );  
        } else {  
             alert( "Download failed: " + status );   
        }    
    });  
    //dtask.addEventListener( "statechanged", onStateChanged, false );  
    dtask.start();   
}  
createDownload('http://www.baidu.com/%2B%3D?x=%2B%3D')

[结果]
服务器收到的url实际为 http://www.baidu.com/+=?x=+=
[期望]
服务器收到的url为 http://www.baidu.com/%2B%3D?x=%2B%3D

运行环境
[系统版本]
iOS10.3
[浏览器版本]
[IDE版本]
HBuilder 8.0.1.201702172043
[mui版本]

附件
[代码片段]
[安装包]

联系方式
[QQ]
[电话]

2017-12-08 03:37 负责人:无 分享
已邀请:
天逸

天逸 (作者)

这个问题挺严重的呀,现在很多OSS的鉴权下载连接里面都有Signature字段,也一般会要求URLEncode呀,没有官方的人来解释下吗?

  • DCloud_IOS_XTY

    能提供个OSS的下载地址吗?

    2017-12-12 17:38

  • DCloud_IOS_XTY

    你的文件链接是使用文件分享生成的吗?

    2017-12-12 17:44

  • 天逸 (作者)

    回复 DCloud_IOS_XTY: http://chaos-test-acl.oss-cn-shanghai.aliyuncs.com/remote.txt?Expires=1513605693&OSSAccessKeyId=TMP.AQHsn_HmeFdUQLi6y-kLF2oGdgV7U2j15XwdRbMTZHKI-eYxf1yloYpeg_biAAAwLAIUcIuw7o0ZiZct22L6uTbETXbkfOMCFDqtteUq-DxrclcC5VrljiTjxOtt&Signature=T8%2BlHuYHAOCFZhcbG1FpSH0KYE4%3D 多谢,多谢

    2017-12-18 21:02

  • 天逸 (作者)

    回复 DCloud_IOS_XTY:我的是用API生成的,但是分享生成的是一样的,回复里面好像会被隐藏掉,我重新发下

    2017-12-18 21:09

  • 天逸 (作者)

    http://chaos-test-acl.oss-cn-shanghai.aliyuncs.com/remote.txt?Expires=1513605693&OSSAccessKeyId=TMP.AQHsn_HmeFdUQLi6y-kLF2oGdgV7U2j15XwdRbMTZHKI-eYxf1yloYpeg_biAAAwLAIUcIuw7o0ZiZct22L6uTbETXbkfOMCFDqtteUq-DxrclcC5VrljiTjxOtt&Signature=T8%2BlHuYHAOCFZhcbG1FpSH0KYE4%3D

    2017-12-18 21:09

天逸

天逸 (作者)

实测iOS下有问题,但是Android下是好的,怀疑是iOS SDK的问题…

DCloud_IOS_XTY

DCloud_IOS_XTY

@天逸 请提供下下载失败的OSS地址

天逸

天逸 (作者)

示例下载链接:

http://chaos-test-acl.oss-cn-shanghai.aliyuncs.com/remote.txt?Expires=1513605693&OSSAccessKeyId=TMP.AQHsn_HmeFdUQLi6y-kLF2oGdgV7U2j15XwdRbMTZHKI-eYxf1yloYpeg_biAAAwLAIUcIuw7o0ZiZct22L6uTbETXbkfOMCFDqtteUq-DxrclcC5VrljiTjxOtt&Signature=T8%2BlHuYHAOCFZhcbG1FpSH0KYE4%3D
天逸

天逸 (作者)

@DCloud_IOS_XTY 示例的下载URL如下,请帮忙看看,问题影响还是比较大的,多谢,多谢

http://chaos-test-acl.oss-cn-shanghai.aliyuncs.com/remote.txt?Expires=1515575218&OSSAccessKeyId=TMP.AQGN5MGLZc-s0dwOBoAkSuH7_9fkMpU6x0JA8_wtWjYWKm_kLDD5Qig-TKm5AAAwLAIUHwHkiCSDrdJPG8cx8DF4jyUMCswCFAonT34SFbkSnbrSPHjXytVFpKtJ&Signature=wBo334E%2BZ0Jzlp99bIfH%2B1w1d4g%3D
手写的从前

手写的从前

请问解决了吗

该问题目前已经被锁定, 无法添加新回复