我们有一个现有的API,第三方可以推送数据。 API调用使用与Ruby的ApiAuth库中描述的相同的方案使用HMAC进行身份验证,我用它来验证签名的请求。我们现在需要支持多部分/表单数据文件上传。
我尝试使用cURL编写bash脚本作为示例API调用。我已经有一个没有文件上传的工作(只有JSON数据的POST请求)。
我坚持的部分是为多部分请求生成$ content_md5。我理解多部分请求的内容具有由边界字符串分隔的内容部分,如此处所述。
问题1:cURL生成它自己的边界字符串并将其附加到我的内容类型标题 问题2:我是否应该使用边界字符串和节标题来MD5整个请求正文?
所以基本上,我需要能够知道边界字符串是什么,这样我就可以生成一个字符串,看起来像http多部分格式中描述的内容部分和边界,第7行到第23行,这样我就可以MD5了
有没有办法只用cURL做到这一点?有没有更好的方法来构建这样一个HMAC签名的多部分请求?
我希望通过cURL将其作为第三方开发人员的一个通用示例,它将与我们的API集成,以便他们可以用他们正在使用的任何语言签署他们的请求。