· 6 years ago · Apr 03, 2019, 08:58 AM
1/** Add the Given Dependency
2 <dependency>
3 <groupId>com.amazonaws</groupId>
4 <artifactId>aws-java-sdk</artifactId>
5 <version>1.11.163</version>
6 </dependency>
7*/
8import java.io.IOException;
9import java.io.InputStream;
10
11import com.amazonaws.auth.AWSCredentials;
12import com.amazonaws.auth.AWSStaticCredentialsProvider;
13import com.amazonaws.auth.BasicAWSCredentials;
14import com.amazonaws.regions.Regions;
15import com.amazonaws.services.s3.AmazonS3;
16import com.amazonaws.services.s3.AmazonS3ClientBuilder;
17import com.amazonaws.services.s3.model.DeleteObjectsRequest;
18import com.amazonaws.services.s3.model.ObjectListing;
19import com.amazonaws.services.s3.model.PutObjectResult;
20import com.amazonaws.services.s3.model.S3Object;
21
22public class S3Main {
23 /**
24 * Get Basic AWS Credentials
25 * @param accesskey
26 * @param secretkey
27 * @return
28 */
29 public AWSCredentials getBasicAWSCredentials(String accesskey, String secretkey) {
30 return new BasicAWSCredentials(accesskey, secretkey);
31 }
32
33 /**
34 * get AmazonS3
35 *
36 * @return
37 */
38 public AmazonS3 getAmazonS3() {
39 return AmazonS3ClientBuilder.standard()
40 .withCredentials(new AWSStaticCredentialsProvider(
41 getBasicAWSCredentials("<AWS accesskey>", "<AWS secretkey>")))
42 .withRegion(Regions.US_EAST_1).build();
43 }
44
45 /**
46 * upload On S3
47 *
48 * @param bucketName
49 * @param fileName
50 * @param file
51 * @return
52 */
53 public PutObjectResult uploadOnS3(String bucketName, String fileName, InputStream file) {
54 return getAmazonS3().putObject(bucketName, fileName, file, null);
55 }
56
57 /**
58 * get All Objects
59 *
60 * @param bucketName
61 * @return
62 */
63 public ObjectListing getAllObjects(String bucketName) {
64 return getAmazonS3().listObjects(bucketName);
65 }
66
67 /**
68 * download Object
69 *
70 * @param bucketName
71 * @param fileName
72 * @return
73 */
74 public S3Object downloadObject(String bucketName, String fileName) {
75 return getAmazonS3().getObject(bucketName, fileName);
76 }
77 /**
78 * Delete Object
79 * @param bucketName
80 * @param fileName
81 */
82 public void deleteObject(String bucketName, String fileName) {
83 getAmazonS3().deleteObject(bucketName, fileName);
84 }
85 /**
86 * Delete Multiple file
87 * @param bucketName
88 * @param fileNames
89 */
90 public void deleteMultipleObjects(String bucketName, String[] fileNames) {
91 DeleteObjectsRequest delObjReq = new DeleteObjectsRequest(bucketName)
92 .withKeys(fileNames);
93 getAmazonS3().deleteObjects(delObjReq);
94
95 }
96
97 public static void main(String[] args) throws IOException {
98 S3Main s3Main = new S3Main();
99 String bucketName = "<BUCKET_NAME>";
100 String path = "<PATH_NAME>";
101 // Get All Object On S3
102 /*
103 * ObjectListing objectListing = s3Main.getAllObjects(bucketName); for
104 * (S3ObjectSummary os : objectListing.getObjectSummaries()) {
105 * System.out.println(os.getKey()); }
106 */
107 // Uplaod File
108 /*
109 * File initialFile = new File("C:\\Users\\13615\\Downloads\\qq.jpeg");
110 * InputStream targetStream = new FileInputStream(initialFile); PutObjectResult
111 * result = s3Main.uploadOnS3(bucketName, path+initialFile.getName(),
112 * targetStream); System.out.println(result.getContentMd5());
113 * targetStream.close();
114 */
115 //Download Object
116 /*S3Object s3object = s3Main.downloadObject(bucketName, path + "qq.jpeg");
117 S3ObjectInputStream inputStream = s3object.getObjectContent();
118 FileUtils.copyInputStreamToFile(inputStream, new File("E:\\ImageStore\\hello.jpeg"));*/
119
120 //Delete Object
121 /*s3Main.deleteObject(bucketName, path + "qq.jpeg");*/
122
123 //Delete Multiple File
124 /*String fileNames[] = {"<<filename1>>","<<filename2>>"};
125 s3Main.deleteMultipleObjects(bucketName, fileNames);*/
126 }
127
128
129
130}