调整AWS S3中的图像大小


Resize images in AWS S3

我有一个PHP REST API,它承载Amazon S3中的所有图像。我正在寻找一个插件,或技巧,以调整大小的图像使用GET参数。例如:

http://my-bucket.s3.amazon.com/image.jpg?width=300&height=300

我找到了这个插件,但我团队的一名成员说它是基于ASP.NET的,不适合我的PHP API项目。我应该使用EC2中托管的脚本来调整这些图像的大小吗?还有别的办法吗?欢迎提出想法。

谢谢!

如您所述,我建议您建立自己的PHP服务,根据查询字符串值调整图像大小。是的,PHP服务可以托管在AWS EC2或其他托管平台上。服务将需要接收查询字符串,例如:

http://example.com/images/image.jpg?width=300&高度=300

这将需要进行配置(可能使用mod_rewrite[1])以接收图像的名称(例如:"image.jpg")并将查询字符串大小值传递到PHP脚本中。然后,脚本会在S3上找到您的图像,使用图像库(如ImageMagick/PHP-GD或PHPThumb[2])调整其大小,将其保存(或不保存)回S3,并在原始请求中传递图像数据。

祝你好运!

[1]https://httpd.apache.org/docs/current/mod/mod_rewrite.html

[2]http://phpthumb.sourceforge.net/

有两个选项可用:

1)LAMBDA:如果你想使用AWS服务本身,LAMBDA是一个很好的解决方案

http://docs.aws.amazon.com/lambda/latest/dg/walkthrough-s3-events-adminuser.html

AWS lambda代码可以根据配置的值生成缩略图。AWS Lambda控制台本身有一些可以调整为工作系统的功能。除非您登录,否则控制台的链接将无法工作。

2)第三方:您可以使用类似的第三方resizer

Timthumb :https://github.com/GabrielGil/TimThumb

TimThumb是一个简单、灵活的PHP脚本,可以调整图像大小。(确保您的目录具有公共访问权限)

想象一下: https://github.com/avalanche123/Imagine

几年来最好的图像处理库。OOP,单元测试,易于使用,MIT许可。如果有人认识另一个同样品质的人,我会很惊讶,也很想知道。:)

简易缩略图 :http://www.mywebmymail.com/?q=content/easyphpthumbnail-类

EasyPhpThumbnail Image Effects类允许您实时处理GIF、JPG和PNG的图像操作和PHP缩略图生成。该类是免费的,100%基于PHP,可用于PHP4(从4.3.11开始)和PHP5,易于使用,并提供了超过60种操作的大量功能: