首页 > 解决方案 > 使用枕头调整上传到 s3 的图像大小

问题描述

我有chalice application一个定义lambda_handler,将使用 s3 事件通知触发。每次在我的 s3 存储桶中创建图像时,lambda_handler都会调用该函数来创建缩略图。但是当您使用 将图像上传到 s3 时presigned_urls,上传的文件没有文件扩展名。

s3 上的文件如下所示:

在此处输入图像描述

现在使用枕头时,会抛出错误unknown extension file

我该怎么办?

标签: pythonamazon-s3aws-lambdapython-imaging-librarychalice

解决方案


您是否有权访问负责执行图像上传的功能?

如果您使用预签名的帖子来执行图像上传,您还应该在 object_name 参数中指定文件扩展名。

   response = s3_client.generate_presigned_post(BUCKET_NAME,
                                                "5eafba9fa31dd3bcc190a52.jpg",
                                                Fields=fields,
                                                Conditions=conditions,
                                                ExpiresIn=expiration)

这将导致图像以正确的扩展名上传,因此允许任何后续调用具有正确的文件扩展名。

如果您只能访问您的 chalice 应用程序,并且可以保证文件扩展名始终属于某种类型,则可以在使用 Pillow 之前附加扩展名。


推荐阅读