Issue
The following error occurs when you use the best practice of direct transfer after signing on the server to directly pass PostObject on the OSS web side.
<Error>
<Code>InvalidAccessKeyId</Code>
<Message>The OSS Access Key Id you provided does not exist in our records.</Message>
<RequestId>60AE1FFE8CFD483135961F65</RequestId>
<HostId> BucketName.oss-cn-beijing.aliyuncs.com</HostId>
<OSSAccessKeyId>STS.XXXXX4kYP8Vh2iXXXXXX</OSSAccessKeyId>
</Error>
Troubleshooting process
- Because you are using the PostObject form upload, you are required to open the developer tool in your browser and reproduce the problem, then click Network to view the Form Data data.
- The OSSAccessKeyId value in the form shows that there is no SecurityToken and only one AccessKeyId of STS. An STS is composed of AccessKeyId, AccessKeySecret, and SecurityToken. Therefore, it can be determined that an error occurs because the SecurityToken is not passed.
Cause
Generally, the STS prompt "The OSS Access Key Id you provided does not exist in our records" error is caused by not passing the SecurityToken.
Fixes
When using the PostObject form to upload, if you use STS, you need to add the x-oss-security-token field to the form. The value of the x-oss-security-token field is the SecurityToken of STS. For more information, see PostObject API documentation.
References
Use a temporary credential provided by STS to access OSS
Applicable scope
- OSS