因此,出于一个简单的原因,我使用AWS Educate Starter:
我想将图像从iOS上传到S3,然后获取其URL。为此,我需要一个访问密钥和一个秘密密钥,就像我在Access key ID and Secret Access Key for AWS Educate account中所发现的那样。
我的问题是: 我转到此站点,单击蓝色按钮,展开详细信息,然后将 aws_access_key_id 和 aws_secret_access_key 复制到我的Xcode项目中。在那里,我得到了以下信息:我的访问密钥无效,并且经过一番尝试后,我认识到,这两个值在我加载 labs.vocareum.com 新网站时一直在变化。
我在这里做什么错了?
答案 0 :(得分:0)
显然,这些 aws_access_key_id、aws_secret_access_id 和 aws_session_token 不是永久性的。每次在 AWS Educate Starter Account 上启动会话时,都会生成不同的凭证。
每个会话将持续几个小时,因此如果您的程序使用非永久凭据(aws_access_key_id、aws_secret_access_id、aws_session_token)将图像上传到 S3,您的程序可以在几个小时内毫无问题地上传, 然后它就不再工作了,因为会话将被终止。
在普通 AWS 账户中,您可以从 IAM 获取/创建永久访问密钥等。但是,您可能已经知道,在 AWS Educate 账户中,您无法向 IAM 用户添加/创建访问密钥,因为您没有权限。
解决这个问题的唯一方法是创建一个标准的非教育 AWS 账户或在每次会话到期时更改凭证。
回答你的问题,你没有做错任何事。每个会话在几个小时后到期,这就是您收到访问密钥无效错误的原因。