这正是我所做的。
我有一个 S3 存储桶,S3 存储桶中的映像是完全公开的。您可以将 URL 直接粘贴到任何浏览器中,它会显示图像。CORS 设置为允许所有源。
我按照 AWS 教程并单击启动堆栈以启动用于无服务器图像处理的默认模板。
https://docs.aws.amazon.com/solutions/latest/serverless-image-handler/deployment.html#step1
创建堆栈时要求您输入参数。它询问源存储桶。我准确地输入了SOURCE_BUCKET的名字!我什至仔细检查了一下。所以我在那里输入了存储桶名称。这也是那个桶中的公众形象。现在这是链接吧?我使用的是默认模板,它要求输入存储桶名称,我输入正确,然后完全尝试使用调整器,但它找不到键。
当我输入云前端 URL 和密钥时,我得到:
{"status":500,"code":"NoSuchKey","message":"指定的键不存在。
我不知道还能做什么!图像是完全公开的!我确定我输入了正确的密钥和 URL,我之前已经让它工作了,但突然发生了一些变化。所以我之前删除了整个堆栈并从头开始创建它,现在它甚至没有与密钥建立连接!
我该怎么办?我还需要哪些其他权限才能打开?为什么在创建堆栈时他们不为您设置?
更新
所以我发现如果我在存储桶的根中添加图像,它会起作用!但是,如果他们键是子文件夹中的路径,则不起作用。
键与S3 中的路径不同。 如果您要将所有图像粘贴到 S3 伪文件夹中,请将其称为图像,并确保它是授予 Lambda 函数的权限的一部分。仅仅因为某些内容是公开的并不意味着 Lambda 将能够访问它。