Как загрузить файл, присутствующий в S3, из AWS EMR на компьютер EC2, используя Java
Есть ли способ загрузить файл, который хранится на AWS S3, из экземпляра EMR в другой каталог экземпляра EC2.
До сих пор я пытаюсь сделать это с помощью Java SFTP. Также пытался использовать AWS S3 Client, чтобы поместить объект в s3.
Вот мой код:
try {
String bucketName = "my-bucket/product-images";
BufferedImage image;
URL url =new URL(product_image_url);
image = ImageIO.read(url);
String imageName = FilenameUtils.getBaseName(product_image_url);
/*Tried creating new file in current directory*/
File file = new File(imageName);
ImageIO.write(image,"jpg",file);
s3client.putObject(new PutObjectRequest(bucketName,imageName,file));
/*Here passing source as file name created in current dir
I have also tried giving bucket path as
sftpChannel.put("s3://xwalker-images/product-images/"+imageName, imageName);
*/
sftpChannel.put("imageName, "/my_images/"+imageName);
} catch (SftpException e) {
e.printStackTrace();
}
Здесь я получаю ошибку Nullpointer at sftpChannel.put
так как imageName становится NULL.
Кто-нибудь может подсказать мне, где я иду не так? Я попытался это выполнить на локальной машине, и он работает нормально. Но когда я запускаю его на AWS-EMR, он не работает. Можно ли сделать то, что я ожидаю в AWS S3?