Java项目集成Autodesk APS Model Derivative API的OSS上传失败
问题:Java集成Autodesk APS Model Derivative API上传文件至OSS失败
400 Bad Request:
AuthorizationQueryParametersError
Error parsing the X-Amz-Credential parameter; the Credential is mal-formed; expecting "/YYYYMMDD/REGION/SERVICE/aws4_request". ETG6XQTC4WQ1EM86
MABuAzYxu3R/clTqPqXBF/o7h/u/m3UsVeKa0sdEciYNzpOd91RKl5xsJ8xwVhF4R8Sf/GG4cSgnne7mItPVmycmSLomQTJnXmd80UVVJvY=
通过Postman使用获取到的签名URL上传文件可正常成功,但Java代码实现时触发上述错误,已尝试设置Content-Type为application/zip和application/octet-stream。
排查与解决办法
- 禁止对签名URL二次编码:Java代码中如果对获取到的签名URL做额外的URL编码,会直接破坏
X-Amz-Credential的格式。直接使用原始签名URL,若所用HTTP客户端默认会自动编码特殊字符,需手动禁用该行为。 - 严格匹配请求方法与Headers:确保Java代码使用PUT方法(与Postman一致),且不要添加任何签名相关的额外Headers(比如
Authorization)——签名URL已经包含所有认证信息,额外头会导致签名校验不通过。仅保留Content-Type即可,且需与获取签名URL时指定的类型一致。 - 校验文件内容与长度:直接以字节流形式上传文件,不要对内容做转换或压缩;同时确保
Content-Length头与实际文件大小一致,避免手动设置错误。 - 确认签名URL有效性:检查签名URL是否过期,若过期需重新调用APS接口获取新的签名URL。
内容的提问来源于stack exchange,提问作者Suvarna Raverkar
相关产品推荐
相关产品推荐

