【问题标题】:How to transform images directly uploaded to S3 from a Heroku node app?如何转换从 Heroku 节点应用程序直接上传到 S3 的图像?
【发布时间】:2016-11-21 15:40:28
【问题描述】:

我有一个允许用户上传图片的应用。我正在努力让他们上传图像directly to AWS S3,而不是通过传递(听起来如果使用传递完成,它真的会绑定你的 Heroku 测功机)。但是,我想对他们上传的资产进行转换(例如,重新调整大小、压缩图像质量以减小文件大小和创建缩略图版本)。由于文件是直接上传到 S3,所以在上传到 Amazon 之前,我无法执行任何转换。

我不确定处理这个问题的最佳方法,但我在想:

  1. 用户通过直接上传到 S3 的文件输入表单字段上传图像。
  2. 一旦成功完成,来自亚马逊的图片 url 就会保存到我的 Heroku 数据库中。
  3. 然后,我可以获取该图像并对其执行所有这些转换。
  4. 将图像作为裁剪、压缩和缩略图版本重新上传到 S3。
  5. 在我的 Heroku 数据库中保留新编辑图像的 URL。

这是解决此问题的最佳工作流程,还是有更有效的解决方案?谢谢!

【问题讨论】:

  • 是的,这是您遵循的正确且最佳实践的工作流程。检查这篇文章他们也遵循相同的工作流程。 aws.amazon.com/articles/PHP/1602 仅适用于 PHP。

标签: amazon-web-services heroku amazon-s3


【解决方案1】:

以下是在 Heroku 中重新处理图片的一些替代方法:

使用 AWS Lambda 进行图像处理

配置您的 Amazon S3 存储桶以在上传图片时触发 AWS Lambda 函数。 Lambda 函数可以自动转换图像。

见:Tutorial: Using AWS Lambda with Amazon S3

检索时转换图片

不要转换和存储图像,而是使用可以按需转换图像的在线服务,例如:

【讨论】:

  • 谢谢约翰!我不知道提供了这项服务。对于我正在尝试完成的工作,这似乎是一个更简单、更愉快的解决方案,因此将尝试这两个。再次感谢。
猜你喜欢
  • 1970-01-01
  • 2022-07-02
  • 2019-10-05
  • 2012-09-13
  • 1970-01-01
  • 2019-07-30
  • 2019-10-11
  • 2016-01-09
  • 1970-01-01
相关资源
最近更新 更多