発行
サーバーへの署名後の直接転送のベストプラクティスを使用して、OSS web側でPostObjectを直接渡すと、次のエラーが発生します。
<エラー>
<Code>InvalidAccessKeyId</Code>
<メッセージ> 指定したOSSアクセスキーIdはレコードに存在しません。</Message>
<RequestId>60AE1FFE8CFD483135961F65</RequestId>
<HostId> BucketName.oss-cn-beijing.aliyuncs.com</HostId>
<OSSAccessKeyId>STS.XXXXX4kYP8Vh2iXXXXXX</OSSAccessKeyId>
</エラー>
トラブルシューティングプロセス
- PostObjectフォームのアップロードを使用しているため、ブラウザーで開発者ツールを開いて問題を再現し、[ネットワーク] をクリックしてフォームデータのデータを表示する必要があります。
- フォームのOSSAccessKeyId値は、SecurityTokenがなく、STSのAccessKeyIdが1つだけであることを示しています。 STSは、AccessKeyId、AccessKeySecret、およびSecurityTokenで構成されます。 したがって、SecurityTokenが渡されないためにエラーが発生したと判断できます。
原因
通常、STSプロンプト「指定したOSSアクセスキーIdがレコードに存在しません」というエラーは、SecurityTokenを渡さないことが原因です。
修正
PostObjectフォームを使用してアップロードする場合、STSを使用する場合は、x-oss-security-tokenフィールドをフォームに追加する必要があります。 x-oss-security-tokenフィールドの値は、STSのSecurityTokenです。 詳細については、「PostObject APIドキュメント」をご参照ください。
参考資料
STSが提供する一時的な資格情報を使用してOSSにアクセスする
適用範囲
- OSS