根据下载私有文件的指南生成私有文件链接,发现文件名是中文的话生成的private_url用chrome会出现
{"error":"download token auth failed"}
的响应(对比英文文件名是正常的)。
认证高级PHP讲师
七牛要求所有的链接,文件名必须都是UTF-8编码的,所以看看你的代码吧。
Key必须采用utf-8编码,使用非utf-8编码的资源名访问时会报错。
http://developer.qiniu.com/docs/v6/api/reference/security/download-token.html
你在做中文的key的下载凭证的时候,key要做url转义的,参考上面的文档的最后面的说明。
你够幸运,我遇到过,告诉你吧
chrome 尤其是mac系统上的(可能跟系统没啥关系,跟浏览器种类也没关系,反正有的电脑就是这样)
你是用utf-8编码后的url 单击链接后,浏览器会再转一次,有的时候是全部转成大写,有的是全部小写,
例如原url=xxx.com/downfile/fileidHHHHHaaaaa.rar?e=&token=****** 会被自动转码成url=xxx.com/downfile/fileidHHHHHAAAAA.rar?e=&token=********
注意小写aaaaa变成了大写AAAAA,也可能是原来大写变成小写的
这只是举例子,实际情况是对utf-8编码后的中文部分进行转码
自动转码可能说的不准确,但是不管看html里面<a href="***aaa" aaa写的是什么,点击打开就会发现浏览器打开的地址变成AAA了
<a href="***aaa"
因为这个问题发现的时间比较久了,所以记得不是很清楚,反正基本就是这样,确认你文件名不包括中文,就不会发生此问题
除了楼上的答案其实还有其他可能性,之所以点进了这个贴是因为我遇到了跟楼主一样的问题,但我查看了一下我的文件并没有中文,反而,有一个空格,我把空格去掉后,就没事了,在此留言,让后辈少进坑把
我没有中文,,没有空格为什么也提示这种问题
七牛要求所有的链接,文件名必须都是UTF-8编码的,所以看看你的代码吧。
http://developer.qiniu.com/docs/v6/api/reference/security/download-token.html
你在做中文的key的下载凭证的时候,key要做url转义的,参考上面的文档的最后面的说明。
你够幸运,我遇到过,告诉你吧
chrome 尤其是mac系统上的(可能跟系统没啥关系,跟浏览器种类也没关系,反正有的电脑就是这样)
你是用utf-8编码后的url 单击链接后,浏览器会再转一次,有的时候是全部转成大写,有的是全部小写,
例如原url=xxx.com/downfile/fileidHHHHHaaaaa.rar?e=&token=******
会被自动转码成url=xxx.com/downfile/fileidHHHHHAAAAA.rar?e=&token=********
注意小写aaaaa变成了大写AAAAA,也可能是原来大写变成小写的
这只是举例子,实际情况是对utf-8编码后的中文部分进行转码
自动转码可能说的不准确,但是不管看html里面
<a href="***aaa"
aaa写的是什么,点击打开就会发现浏览器打开的地址变成AAA了因为这个问题发现的时间比较久了,所以记得不是很清楚,反正基本就是这样,确认你文件名不包括中文,就不会发生此问题
除了楼上的答案其实还有其他可能性,之所以点进了这个贴是因为我遇到了跟楼主一样的问题,但我查看了一下我的文件并没有中文,反而,有一个空格,我把空格去掉后,就没事了,在此留言,让后辈少进坑把
我没有中文,,没有空格为什么也提示这种问题