Last active
March 16, 2018 00:05
-
-
Save mohashari/679943ec9135a17185e060993b3204d3 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| @Service | |
| public class AmazonS3Service { | |
| private AmazonS3 s3client; | |
| @Value("${amazonProperties.endpointUrl}") | |
| private String endpointUrl; | |
| @Value("${amazonProperties.bucketName}") | |
| private String bucketName; | |
| @Value("${amazonProperties.accessKey}") | |
| private String accessKey; | |
| @Value("${amazonProperties.secretKey}") | |
| private String secretKey; | |
| @Autowired | |
| CatererRepository catererRepository; | |
| @Autowired | |
| NotificationGenerateDeliveryOrders notificationGenerateDeliveryOrders; | |
| @PostConstruct | |
| private void initializeAmazon() { | |
| AWSCredentials credentials = new BasicAWSCredentials(this.accessKey, this.secretKey); | |
| this.s3client = new AmazonS3Client(credentials); | |
| } | |
| private File convertMultiPartToFile(MultipartFile file) throws IOException { | |
| File convFile = new File(file.getOriginalFilename()); | |
| FileOutputStream fos = new FileOutputStream(convFile); | |
| fos.write(file.getBytes()); | |
| fos.close(); | |
| return convFile; | |
| } | |
| private String generateFileName(MultipartFile multiPart) { | |
| return new Date().getTime() + "-" + multiPart.getOriginalFilename().replace(" ", "_"); | |
| } | |
| private void uploadFileTos3bucket(String fileName, File file) { | |
| s3client.putObject(new PutObjectRequest(bucketName, fileName, file) | |
| .withCannedAcl(CannedAccessControlList.PublicRead)); | |
| } | |
| public String uploadFile(MultipartFile multipartFile) { | |
| String fileUrl = ""; | |
| try { | |
| File file = convertMultiPartToFile(multipartFile); | |
| String fileName = generateFileName(multipartFile); | |
| fileUrl = endpointUrl + "/" + bucketName + "/" + fileName; | |
| uploadFileTos3bucket(fileName, file); | |
| file.delete(); | |
| } catch (Exception e) { | |
| e.printStackTrace(); | |
| } | |
| return fileUrl; | |
| } | |
| public String deleteFileFromS3Bucket(String fileUrl) { | |
| String fileName = fileUrl.substring(fileUrl.lastIndexOf("/") + 1); | |
| s3client.deleteObject(new DeleteObjectRequest(bucketName + "/", fileName)); | |
| return "Successfully deleted"; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment