问题描述
使用policy的V4签名认证时,如果PostObject表单域x-oss-credential中的地域配置异常,会出现如下报错:
<Error>
<Code>InvalidArgument</Code>
<Message>The signing region in credential is invalid.</Message>
<RequestId>694532*******</RequestId>
<HostId>BucketName.oss-cn-hangzhou.aliyuncs.com</HostId>
<ArgumentName>x-oss-credential</ArgumentName>
<ArgumentValue>LTAI5tRJ*****/20251219/cn-beijing/oss/aliyun_v4_request</ArgumentValue>
<EC>0002-00000715</EC>
<RecommendDoc>https://api.aliyun.com/troubleshoot?q=0002-00000715</RecommendDoc>
</Error>问题原因
发起PostObject请求时,x-oss-credential中的地域出现以下任一情况:
表单域中包含的地域标识无效,例如拼写错误、格式不合理、不存在、不支持等。
签名中的地域与Bucket实际所在地域不一致。
问题示例
以下示例中,请求Host中为华东1(杭州)地域的Bucket,但x-oss-credential中填写的地域为cn-beijing,地域填写错误导致报错。
POST / HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Content-Length: 6443500495
Date: Sat, 18 Feb 2023 05:17:02 GMT
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryW0DET1iaBMeAOBg3
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
------WebKitFormBoundaryW0DET1iaBMeAOBg3
Content-Disposition: form-data; name="key"
big.img
------WebKitFormBoundaryW0DET1iaBMeAOBg3
Content-Disposition: form-data; name="x-oss-date"
abc
------WebKitFormBoundaryW0DET1iaBMeAOBg3
Content-Disposition: form-data; name="policy"
eyJleHBpcmF0aW9uIjoiMjAyMy0wMi0xOFQxMzoxOTowMC4wMDBaIiwiY29uZGl0aW9ucyI6W1siY29udGVudC1sZW5ndGgtcmFuZ2UiLDAsMTA0ODU3NjAwMF1dfQ==
------WebKitFormBoundaryW0DET1iaBMeAOBg3
Content-Disposition: form-data; name="x-oss-credential"
LTAI5tRJ*****/****/cn-beijing/oss/aliyun_v4_request
------WebKitFormBoundaryW0DET1iaBMeAOBg3
Content-Disposition: form-data; name="success_action_status"
200
------WebKitFormBoundaryW0DET1iaBMeAOBg3
Content-Disposition: form-data; name="x-oss-signature-version"
OSS4-HMAC-SHA256
------WebKitFormBoundaryW0DET1iaBMeAOBg3
Content-Disposition: form-data; name="x-oss-signature"
miAoLVohS5*****WEXyC3wVecaQ=
------WebKitFormBoundaryW0DET1iaBMeAOBg3
Content-Disposition: form-data; name="file"; filename="big.img"
Content-Type: application/octet-stream ***
------WebKitFormBoundaryW0DET1iaBMeAOBg3--解决方案
在使用PostObject的V4签名请求时,请确保x-oss-credential中的地域配置正确。具体要求如下:
使用正确的地域标识格式(如cn-hangzhou、cn-beijing等)。
签名的地域标识必须与Bucket实际所在地域一致。可通过OSS控制台确认Bucket实际所在地域。
该文章对您有帮助吗?