今天遇到客户反馈说调用storage客户端的过程当中没法上传中文文件名的文件,因而开始查这个问题,发现客户端有几处问题算法
一、重复的对filename进行URLEncoder,若是英文还好,反复几回都没问题,可是遇到中文的时候转换编码两次以后,编码变化了,这样传递到swift 服务端的时候只进行一次URLDecoder,没法解析中文。swift
二、关于加密,客户端这边的加密算法是,先经过URLEncoder后,在根据path sk等参数计算一个signature,而后将这个signature放到HttpUrlConnection的header中,发送到swift的服务端,能够服务端的作法是,先URLDecoder在计算signature,这样就致使了,请求头里的校验signature与服务端计算的不一致,所以就会返回Auth失败,故没法建立文件编码