我正在使用 Python 的 Chalice 库创建 AWS Lambda 和 API。我的 AWS 凭证是使用 github 工作流 aws-actions 注入的,它能够chalice deploy
. 端点正在工作,并且完美地部署到 AWS。
问题是:
我使用 Boto3 使用generate_presigned_post
位于此处的文档中的函数创建预签名上传表单:https ://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-presigned-urls.html
但是当我使用该函数的响应并用它生成一个 html 时,在提交要上传的文件后,它会返回给我
<Error>
<Code>InvalidAccessKeyId</Code>
<Message>
The AWS Access Key Id you provided does not exist in our records.
</Message>
我检查了所有内容,似乎它使用了错误的 AWS_ACCESS_KEY 但如果它完美地部署到 AWS,我认为这不是问题(至少现在是这样)。我使用 boto3 客户端,它似乎自动找到了 aws 凭证,但它似乎没有找到我的(或正在发生的任何事情)并提供了错误的 AWS_ACCESS_KEY。
import boto3
S3_CLIENT = boto3.client('s3')
BUCKET = 'bucket_name'
response = S3_CLIENT.generate_presigned_post(
BUCKET,
Key="{$filename}",
Fields=None,
Conditions=None,
ExpiresIn=3600
)
它返回正确的响应,但是当与表单集成并使用时,表单会返回错误。