Actualmente hago uso de los siguientes para cargar un archivo en S3:guardar un objeto BufferedImage a Amazon S3 como un archivo
File file = new File(my_file_path);
AmazonS3 s3 = new AmazonS3Client(new PropertiesCredentials(cred));
s3.putObject(new PutObjectRequest("folder", key, file));
Lo anterior funciona bien pero quiero guardar directamente un BufferedImage
a S3 para afeitarse unos segundos de mi aplicación pero no tengo ni idea de cómo hacer esto? Esta es la forma en la actualidad guardo mi imagen en un archivo:
image = new BufferedImage(rawImage.width, rawImage.height, BufferedImage.TYPE_INT_ARGB);
File file = new File(filepath);
ImageIO.write(image, "png", file);
¿Hay una manera de hacer la escritura directamente a Amazon S3 como una corriente, de ser así, alguien puede mostrar un ejemplo?
Además, ¿es esta una buena idea? Si es propenso a errores, me atendré a mi método actual. Cualquier consejo apreciado.
Esto funcionó muy bien, gracias jkraybill! Agregaría el tipo de contenido 'meta.setContentType (" image/png ");' ya que cuando traté de abrirlo en la consola AWS S3 siguió descargándolo en lugar de dejarme ver la imagen. Solo para que los futuros lectores de esta pregunta no tropiecen con esto. :) – Abs
¡Me alegro de estar de servicio! – jkraybill
¡Perfecto! funciona como debería ser :) ¡Gracias! – Athar