无服务器图像处理程序-如何将子文件夹设置为root

时间:2018-09-13 09:13:49

标签: amazon-web-services amazon-s3 amazon-cloudfront image-resizing

嗨,我启动并运行了无服务器图像处理程序(使用此模板:https://docs.aws.amazon.com/solutions/latest/serverless-image-handler/deployment.html)。部署工作正常,一切都很好。

我将其指向我现有的存储桶“ MyBucket”,并且在将图像放入该存储桶时可以进行图像缩放和填充。 但是,我们将所有图像保存在该存储桶的子文件夹中,称为“ cloudfront_assets”。

因此,在将CNAME分配给新的Cloudfront发行版之后,我不得不参考这样的图像:

https://subdomain.mydomain.com/cloudfront_assets/image.jpg

代替

https://subdomain.mydomain.com/image.jpg

我尝试编辑cloudfront分配来源设置,并将/ image中的“原始路径”设置为/ cloudfront_assets或/ image / cloudfront_assets之类。

它解决了路径问题,因此我不必在映像之前写“ / cloudfront_assets /”,但是无论我设置了什么,映像重新缩放都将停止。

执行此操作的正确方法是什么?

请帮助,目前暂时停滞 在lambda函数中设置日志级别以进行调试,以查看发生了什么,但据我所知,它仅表示其获取“访问被拒绝”

1 个答案:

答案 0 :(得分:3)

处理程序支持重写功能,该功能允许您修改url,这可能是实现它的最简单方法: https://docs.aws.amazon.com/solutions/latest/serverless-image-handler/appendix-b.html

基本上,您可以重写所有url以始终附加/ cloudfront_assets /,类似于示例重写以添加/fit-in/

的方式

重写。*之类的东西应该可以捕获几乎所有内容。由于代码是基于python的,因此您应该使用python regexp语法。

该函数的基础代码可以在github仓库中找到:https://github.com/awslabs/serverless-image-handler/blob/master/source/image-handler/lambda_rewrite.py