Приложение Spring Boot перезапускается при использовании с AWS s3 - PullRequest
0 голосов
/ 26 декабря 2018

Я пытаюсь загрузить файл в S3 Bucket с помощью Spring Boot.Загрузка прошла успешно, но сразу после загрузки файла приложение перезапускается.ЭТО МОЙ КОД

ServiceImpl

@Service
public class AmazonS3ClientServiceImpl implements AmazonS3ClientService
{
    private AmazonS3 amazonS3;
    private static final Logger logger = LoggerFactory.getLogger(AmazonS3ClientServiceImpl.class);

    @Autowired
    public AmazonS3ClientServiceImpl(Region awsRegion, AWSCredentialsProvider awsCredentialsProvider)
    {
        this.amazonS3 = AmazonS3ClientBuilder.standard()
            .withCredentials(awsCredentialsProvider)
            .withRegion(awsRegion.getName()).build();
    }

    @Async
    public void uploadFileToS3Bucket(MultipartFile multipartFile, boolean enablePublicReadAccess,String bucketname)
    {
        String fileName = multipartFile.getOriginalFilename();

        try {
            //creating the file in the server (temporarily)
            File file = new File(fileName);
            FileOutputStream fos = new FileOutputStream(file);
            fos.write(multipartFile.getBytes());
            fos.close();

            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketname, fileName, file);

            if (enablePublicReadAccess) { 
                putObjectRequest.withCannedAcl( CannedAccessControlList.PublicRead);
            }
            //            this.amazonS3.putObject(putObjectRequest);
            TransferManager tm = TransferManagerBuilder.standard().withS3Client(this.amazonS3).build();
            Transfer transfer = tm.upload(putObjectRequest);
            transfer.waitForCompletion();
            //removing the file created in the server
            file.delete();
            } catch (IOException | InterruptedException |AmazonServiceException ex) {
                logger.error("error [" + ex.getMessage() + "] occurred while uploading [" + fileName + "] ");
            }
        }

        @Async
        public void deleteFileFromS3Bucket(String fileName)
        {
            try {
                 amazonS3.deleteObject(new DeleteObjectRequest("scts1545321420734", fileName));
            } catch (AmazonServiceException ex) {
                logger.error("error [" + ex.getMessage() + "] occurred while removing [" + fileName + "] ");
            }
        }

        @Override
        public void createBucket(String bucketname) {
        try {
            amazonS3.createBucket(bucketname);
        }catch(SdkClientException e) {
            logger.error("error [" + e.getMessage() + "] occurred while creating bucket ["+ bucketname + "]");
        }
     }
}

РЕСТОРАН ОТДЫХА

@PostMapping("/supplier-masters/logo")
public ResponseEntity<AgroWebResponse> testLogo(@RequestPart(value = "file") MultipartFile file){

    amazonS3ClientService.uploadFileToS3Bucket(file, true, "scts1545321420734");
    return CommonWebUtils.successResponse("Uploadaed");
}

ИСКЛЮЧЕНИЕ ДО ПЕРЕЗАГРУЗКИ: InterruptedException

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...