package com.mindskip.xzs.utility.oss;
|
|
|
import com.amazonaws.auth.AWSCredentials;
|
import com.amazonaws.auth.AWSStaticCredentialsProvider;
|
import com.amazonaws.auth.BasicAWSCredentials;
|
import com.amazonaws.services.s3.AmazonS3;
|
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
|
import com.amazonaws.services.s3.model.*;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Component;
|
|
import java.io.IOException;
|
import java.io.InputStream;
|
|
@Component
|
public class AmazoneS3 {
|
|
|
private static String accessKeyId;
|
|
private static String accessKeySecret;
|
|
private static String bucketName;
|
|
private static String regionName;
|
|
|
@Value("${S3.accessKeyId}")
|
public void setAccessKeyId(String accessKeyId) {
|
this.accessKeyId = accessKeyId;
|
}
|
|
|
@Value("${S3.accessKeySecret}")
|
public void setAccessKeySecret(String accessKeySecret) {
|
this.accessKeySecret = accessKeySecret;
|
}
|
|
|
@Value("${S3.bucketName}")
|
public void setBucketName(String bucketName) {
|
this.bucketName = bucketName;
|
}
|
|
@Value("${S3.region}")
|
public void setRegionName(String regionName) {
|
this.regionName = regionName;
|
}
|
|
public static String getAccessKeyId() {
|
return accessKeyId;
|
}
|
|
public static String getAccessKeySecret() {
|
return accessKeySecret;
|
}
|
|
public static String getBucketName() {
|
return bucketName;
|
}
|
|
public static String getRegionName() {
|
return regionName;
|
}
|
|
public AmazonS3 amazonS3() {
|
AWSCredentials awsCredentials = new BasicAWSCredentials(getAccessKeyId(), getAccessKeySecret());
|
AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(awsCredentials));
|
//设置S3的地区
|
builder.setRegion(getRegionName());
|
AmazonS3 s3Client = builder.build();
|
return s3Client;
|
}
|
|
/**
|
* 上传
|
* @param fileName
|
* @param inputStream
|
* @return
|
* @throws IOException
|
*/
|
public PutObjectResult upload(String fileName, InputStream inputStream) throws IOException {
|
AmazonS3 amazonS3Client = this.amazonS3();
|
ObjectMetadata objectMetadata = new ObjectMetadata();
|
objectMetadata.setContentType("plain/text");
|
objectMetadata.setContentLength(Long.valueOf(inputStream.available()));
|
PutObjectResult putObjectRequest = amazonS3Client.putObject(new PutObjectRequest(AmazoneS3.getBucketName(), fileName, inputStream, objectMetadata));
|
|
return putObjectRequest ;
|
}
|
|
/**
|
* 下载
|
* @param key
|
* @return
|
*/
|
public InputStream download(String key){
|
S3Object object = this.amazonS3().getObject(new GetObjectRequest(getBucketName(), key));
|
return object.getObjectContent();
|
}
|
}
|