繁体   English   中英

如何使用AWS S3进行图像处理(PHP)

[英]How to use AWS S3 for image processing (PHP)

对于我的网站,我想使用API​​通过AWS S3服务存储所有图像。

如何通过API / SDK执行该操作

1)如何使用API​​(从我的网站)上载不同文件夹中的图像/文件。

2)如何即时调整尺寸/裁剪图像。 例如50x50像素,250x250像素。

3)强制下载。

谢谢

我认为AWS没有内置功能来调整S3中任何存储图像的大小。 eldblz所述,您必须自行调整大小。 您可以使用S3流包装器。

S3流包装器非常神奇: http : //docs.aws.amazon.com/aws-sdk-php/v2/guide/feature-s3-stream-wrapper.html

它将允许您使用内置的PHP函数,例如file_get_contents和file_put_contents。

  1. 获取原始文件的详细信息:

     # If you have stream wrapper enabled, # getimagesize will get information from the S3 # you have to pass the S3 URI though list($width, $height) = getimagesize('s3://bucket/key'); # making the new image 50x50 $new_width = 50; $new_height = 50; $new_image = imagecreatetruecolor($new_width, $new_height); 
  2. 使用file_get_contents(或fopen)获取图像数据:

     $data = file_get_contents('s3://bucket/key'); 
  3. 根据数据创建图像资源并调整大小:

     $source = imagecreatefromstring($data); # Resize imagecopyresized($new_image, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 
  4. 输出:

     header('Content-Type: image/jpeg'); imagejpeg($thumb); 

希望这可以帮助!

您的问题有点含糊,因此答案无法准确。 我将提供一些建议或库来开始:

  1. 如何使用API​​(从我的网站)上载不同文件夹中的图像/文件。

该库应该是开始使用S3和文件的好地方: https : //github.com/tpyo/amazon-s3-php-class

  1. 如何即时调整尺寸/裁剪图像。 例如50x50像素,250x250像素。

这应该可以解决问题: https : //github.com/eventviva/php-image-resize或您可以尝试使用PHP Imagick: http ://php.net/manual/zh/book.imagick.php

  1. 强制下载。

Stackoverflow已经为您提供了答案: 如何使用PHP强制文件下载

希望这可以帮助您入门。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM