我有一个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种操作的大量功能: