目录
项目背景
公司自研了私有化的对象存储服务,目前需要对上传接口进行功能测试。
问题
使用第三方测试工具 ApiPost 测试上传接口时,发现 dzuuid 参数始终无法正确解析出来,于是开始了排查工作。
ApiPost 测试界面如下图所示:
除了单文件上传模式,上传接口还支持分片上传模式,上图中的 dzuuid 参数就是用来表示分片属于哪个文件的,在服务器端对应参数 Identifier。现在的问题是服务器端解析 dzuuid 参数时始终为空,打印日志如下:
服务器日志截图如下:
解决
首先,把上传请求中的 file 参数解析后出来,代码如下:
_, header, err := c.Request.FormFile("file")
返回值 header,类型为 multipart.FileHeader 指针,我们将其打印出来,日志输出详情如下:
日志截图如下:
通过日志,我们发现,上传的 dzuuid 参数并非我们想象的那样,只是“dzuuid”那么简单,实际上是“dzuuid ”的样子。有点像“挂羊头卖狗肉”的意思,哈哈。
终于知道原因了,是自己写错参数名称了,在设置 dzuuid 参数时,末尾多写了几个空格。
综上所述
对象存储服务的上传接口没有问题,原来是一场误会,接口调用方的问题,测试用例的问题。