在AWS S3中调整图像大小

7

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

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

我发现了这个插件,但我的团队成员说它是基于ASP.NET的,不适用于我的PHP API项目。我应该使用托管在EC2上的脚本来调整大小那些图像吗?还有其他方法吗?欢迎提出想法。

谢谢!

2个回答

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

http://example.com/images/image.jpg?width=300&height=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/

0

有两个选项可用:

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

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

有 AWS lambda 代码可以根据配置的值生成缩略图。AWS Lambda 控制台本身就有一些代码,您可以将其调整为工作系统。控制台的链接在未登录的情况下无法使用。

2) 第三方:您可以使用第三方调整大小程序,例如

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

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

Imagine: https://github.com/avalanche123/Imagine

多年来最好的图像处理库。采用面向对象编程(OOP),经过单元测试,易于使用且MIT许可证授权。如果有人知道同样质量的其他库,我会感到惊讶并希望了解。

EasyphpThumbnail : http://www.mywebmymail.com/?q=content/easyphpthumbnail-class

EasyPhpThumbnail图像效果类允许您处理GIF、JPG和PNG的图像操作和PHP缩略图生成。该类是免费的,100%基于PHP,适用于PHP4(从4.3.11)和PHP5,易于使用,并提供超过60种操作功能:


1
为了更好的体验,您可以使用AWS CloudFront,或者对于非AWS用户,您可以使用一个好的CDN服务来处理特定文件,例如将TimThumb放在CDN上(确保服务器类型是拉取服务器CDN)。 - manish1706
timthumb存在一个重大的安全漏洞,已经停止更新。 - Sol

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接