Как загрузить файл, присутствующий в 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?

0 ответов

Другие вопросы по тегам