· 7 years ago · Aug 03, 2018, 02:46 AM
1amazonProperties.endpointUrl: https://s3.us-east-2.amazonaws.com
2amazonProperties.accessKey: "MYACCESSKEY"
3amazonProperties.secretKey: "MYSECRETKEY"
4amazonProperties.bucketName: "BUCKETNAME"
5
6@Controller
7public class ProductController {
8 private AmazonClient amazonClient;
9 @Value("${amazonProperties.endpointUrl}")
10 private String endpointUrl;
11 @Value("${amazonProperties.bucketName}")
12 private String bucketName;
13 @Value("${amazonProperties.accessKey}")
14 private String accessKey;
15 @Value("${amazonProperties.secretKey}")
16 private String secretKey;
17 @Autowired
18 ProductController (AmazonClient amazonClient) {
19 this.amazonClient = amazonClient;
20 }
21
22 @RequestMapping(value="/addmaincategory", method=RequestMethod.POST)
23 public String
24 addmaincategory(@ModelAttribute("product") Product product,BindingResult result,Model model){
25 MultipartFile image= product.getProductImage();
26 String imageName = amazonClient.addImage(image);
27 product.setProductImageName(imageName );
28 productRepository.save(category);
29 model.addAttribute("product",product);
30 return "productdetails";
31 }
32
33}
34
35@Service
36 public class AmazonClient {
37
38 private AmazonS3 s3client;
39
40 @Value("${amazonProperties.endpointUrl}")
41 private String endpointUrl;
42 @Value("${amazonProperties.bucketName}")
43 private String bucketName;
44 @Value("${amazonProperties.accessKey}")
45 private String accessKey;
46 @Value("${amazonProperties.secretKey}")
47 private String secretKey;
48 @PostConstruct
49 private void initializeAmazon() {
50 s3client = AmazonS3ClientBuilder.standard()
51 .withRegion("us-east-2")
52 .withCredentials(new ProfileCredentialsProvider())
53 .build();
54 }
55 private File convertMultiPartToFile(MultipartFile file) throws IOException {
56 File convFile = new File(file.getOriginalFilename());
57 FileOutputStream fos = new FileOutputStream(convFile);
58 fos.write(file.getBytes());
59 fos.close();
60 return convFile;
61 }
62
63 private void uploadFileTos3bucket(MultipartFile file) {
64 File file = convertMultiPartToFile(file);
65 String fileName = "myfile.png";
66 PutObjectRequest request = new PutObjectRequest(bucketName, fileName, file).withCannedAcl(CannedAccessControlList.PublicRead);
67 s3client.putObject(request);
68 }
69
70 }