Una vez que tenga el archivo JPEG en la memoria (usando ImageMagick, GD, o en su biblioteca gráfica de elección), que tendrá que cargar el objeto de la memoria a S3.
Muchas clases PHP S3 parecen sólo la carga de archivos de apoyo, pero el uno en Undesigned parece hacer lo que estamos buscando aquí -
// Manipulate image - assume ImageMagick, so $im is image object
$im = new Imagick();
// Get image source data
$im->readimageblob($image_source);
// Upload an object from a resource (requires size):
$s3->putObject($s3->inputResource($im->getimageblob(), $im->getSize()),
$bucketName, $uploadName, S3::ACL_PUBLIC_READ);
Si está utilizando GD lugar, puede utilizar imagecreatefromstring para leer una imagen desde una secuencia, pero no estoy seguro de si puede obtener el tamaño del objeto resultante, como se requiere en s3->inputResource
anterior - getimagesize devuelve la altura, el ancho, etc., pero no el tamaño del recurso de imagen.
Debería haber aclarado: estoy usando la clase S3 de Undesigned. ¿Conoces una forma GD de hacer lo que publicaste arriba? Antes de saltar a la instalación de imagemagick, sería bueno saber si es absolutamente necesario. – MPX
Mi GD es un poco incompleto, sé que se puede leer la imagen de manera similar a ImageMagick, aunque no estoy seguro de obtener el tamaño del objeto, hace un tiempo que revisé los documentos y no pude ver nada allí. ImageMagick bien vale la pena la instalación a través de IMO! – ConroyP
imagesx e imagesy devuelve el ancho/alto de un recurso de imagen. –