今天遇到客户反馈说调用storage客户端的过程中无法上传中文文件名的文件,于是开始查这个问题,发现客户端有几处问题
1、重复的对filename进行URLEncoder,如果英文还好,反复几次都没问题,但是遇到中文的时候转换编码两次之后,编码变化了,这样传递到swift 服务端的时候只进行一次URLDecoder,无法解析中文。
2、关于加密,客户端这边的加密算法是,先通过URLEncoder后,在根据path sk等参数计算一个signature,然后将这个signature放到HttpUrlConnection的header中,发送到swift的服务端,可以服务端的做法是,先URLDecoder在计算signature,这样就导致了,请求头里的校验signature与服务端计算的不一致,因此就会返回Auth失败,故无法创建文件
时间: 2024-10-09 19:13:14