IOS The OSS Access Key Id you provided does not exist in our records

目录
  1. 问题
  2. 解决

问题

IOS使用OSS上传提示403, InvalidAccessKeyId, The OSS Access Key Id you provided does not exist in our records。

解决

首先排除AccessKeyId出错的情况,Android及前端均能上传成功。

原因可能是服务端使用STS签名,返回相关凭证,如:

1
2
3
4
5
"StatusCode": "200",
"AccessKeyId": "STS.NJu2d79fYixPT5KmX8hF3GQ2A",
"AccessKeySecret": "FzskGbUNkiJn7BqMwfSPv1jkmAfLDyaEMiSAVnrnCLbn",
"SecurityToken": "CAISjQJ1q6Ft5B2yfSjIr4nAed6D1Ll43rq7VhP6iVhtZMkfqJSZozz2IH5Lf3RqAuEctP4xmmpQ6PoZlqp6U4cd7u9dwGY0vPpt6gqET9fria7ctM456vCMHWyUFGSMvqv7aPn4S9XwY+qkb0u++AZ43br9c0fNPTGiKobby+QkDLItUxK/cCBNCfpPOwJms7V6D3bKMuu3OROY5Qi1BUFz6A1nkjE9u+btgO/ks0OE0wSqmrJE+dmgesf1NPMBZskvD42Hu8VtbbfE3SJq7BxHybx7lqQs+02c4I7GXgMKsk/cabSKqIUxcFRjFaE+Gr9Zqv/njuF/ueHVmInxxgxEIeZPSSPbSZABOTdzsC5BXBqAAWOe5SUr5pZUDVrYtTLfpFnv030/ru2vxmINy3T8/ERQpnp92xDMXC/o1uozmN9GHBjh1qOvE6RRwjD0zewZYy9dHDbMSna43nJg988w0+vhciI1aswBrjwUlIqCmRosIVngmgIYe4zqqrYuTq1KF7jLmkciIORF8ZauwFakrln/",
"Expiration": "2018-07-02T02:04:59Z"

而IOS端当时的写法需要使用的是主AccessKey、Security,而非STS生成的凭证,因此也没有使用SecurityToken,因此导致上传出错。

如果仍然打算参数STS签名方式,可参考 IOS访问控制 https://help.aliyun.com/document_detail/32046.html 使用 OSSStsTokenCredentialProvider。