问题
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。