· 8 years ago · Jan 25, 2018, 02:44 AM
1import java.io.ByteArrayInputStream;
2import java.io.IOException;
3import java.io.InputStream;
4
5import com.amazonaws.auth.AWSStaticCredentialsProvider;
6import com.amazonaws.auth.BasicAWSCredentials;
7import com.amazonaws.client.builder.AwsClientBuilder;
8import com.amazonaws.services.s3.AmazonS3;
9import com.amazonaws.services.s3.AmazonS3ClientBuilder;
10import com.amazonaws.services.s3.model.CannedAccessControlList;
11import com.amazonaws.services.s3.model.ObjectMetadata;
12import com.amazonaws.services.s3.model.PutObjectRequest;
13
14public class WasabiFileUploader {
15
16 private static final String SERVICE_ENDPOINT = "s3.wasabisys.com";
17 private static final String REGION = "us-east-1";
18 private static final String ACCESS_KEY = "xxx";
19 private static final String SECRET_KEY = "yyy";
20
21 private static final String BUCKET_NAME = "bucket";
22
23 private static final AmazonS3 AMAZON_S3_CLIENT = AmazonS3ClientBuilder.standard()
24 .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(SERVICE_ENDPOINT, REGION))
25 .withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY)))
26 .build();
27
28 public String uploadFile(byte[] data) throws IOException {
29 try (InputStream inputStream = new ByteArrayInputStream(data)) {
30 String filename = "filename";
31
32 ObjectMetadata metadata = new ObjectMetadata();
33 metadata.setContentLength(data.length);
34 PutObjectRequest putObjectRequest = new PutObjectRequest(BUCKET_NAME, filename, inputStream, metadata)
35 .withCannedAcl(CannedAccessControlList.PublicRead);
36 AMAZON_S3_CLIENT.putObject(putObjectRequest);
37
38 return AMAZON_S3_CLIENT.getUrl(BUCKET_NAME, filename).toString();
39 }
40 }
41
42}