對於我的網站,我想使用API存儲使用AWS S3服務的所有圖像。如何使用AWS S3進行圖像處理(PHP)
如何通過API/SDK
1)如何使用API(從我的網站)上傳圖片/文件不同的文件夾中做的事情。
2)如何實時調整/裁剪圖像。例如50x50像素,250x250像素。
3)強制下載。
謝謝
對於我的網站,我想使用API存儲使用AWS S3服務的所有圖像。如何使用AWS S3進行圖像處理(PHP)
如何通過API/SDK
1)如何使用API(從我的網站)上傳圖片/文件不同的文件夾中做的事情。
2)如何實時調整/裁剪圖像。例如50x50像素,250x250像素。
3)強制下載。
謝謝
你的問題有點含糊,所以答案不能確切。我會給一些建議或圖書館開始:
這個庫應該是一個不錯的地方開始S3和文件工作: https://github.com/tpyo/amazon-s3-php-class
這應該做的伎倆:https://github.com/eventviva/php-image-resize 或者你可以嘗試PHP Imagick:http://php.net/manual/en/book.imagick.php
#2已經有答案給你: How to force file download with PHP
希望這有助於讓你開始。
第一和第三個答案都很好。 第二>調整大小/作物是爲遠程圖像(asw主機)。例如... asw.com/abc.jpg?h=200&w=200&q=100 –
您可以使用s3庫來獲取對象S3 :: getObject($ bucketName,$ uploadName),然後使用圖像庫 – eldblz
我不認爲AWS有一個內置功能來調整S3中存儲的圖像的大小。正如提到的eldblz,你必須自己調整大小。你可以使用S3流包裝器。
的S3流包裝是相當驚人的:http://docs.aws.amazon.com/aws-sdk-php/v2/guide/feature-s3-stream-wrapper.html
這將允許您使用內置的file_get_contents一樣和file_put_contents PHP函數。
獲取原始文件的細節:
# 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);
獲取具有的file_get_contents圖像數據(或FOPEN):
$data = file_get_contents('s3://bucket/key');
創建從數據的圖像資源和調整:
$source = imagecreatefromstring($data);
# Resize
imagecopyresized($new_image, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
輸出:
header('Content-Type: image/jpeg');
imagejpeg($thumb);
希望這有助於!
假設您已經瀏覽了適用於PHP的AWS開發工具包,您到目前爲止還有什麼?至於調整大小和裁剪,我相信你的應用程序的服務器應該照顧,然後發送到你的S3存儲桶。 – flauntster