import java.io.File;
import java.io.FileInputStream;
import java.net.URL;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.PutObjectRequest;
public class NewS3Util {
public static String fileUpload(File file, String contentType, String region, String route) {
AmazonS3 s3=null;
String bucketName="";
String imageServer="";
if("1".equals(region)) {
s3 = AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials(S3USConfig.accessKey, S3USConfig.accessSecret)))
.withEndpointConfiguration(new EndpointConfiguration(S3USConfig.serviceEndpoint, S3USConfig.signingRegion)).build();
bucketName=S3USConfig.bucketName;
imageServer=S3USConfig.imageServer;
}else {
s3 = AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials(S3USConfig.accessKey, S3USConfig.accessSecret)))
.withEndpointConfiguration(new EndpointConfiguration(S3USConfig.serviceEndpoint, S3USConfig.signingRegion)).build();
bucketName=S3USConfig.bucketName;
imageServer=S3USConfig.imageServer;
}
try {
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(contentType);
metadata.setContentLength(file.length());
FileInputStream inputStream = new FileInputStream(file);
s3.putObject(new PutObjectRequest(bucketName, route, inputStream,metadata));
GeneratePresignedUrlRequest urlRequest = new GeneratePresignedUrlRequest(bucketName, route);
urlRequest.setExpiration(null);
URL url = s3.generatePresignedUrl(urlRequest);
if (null == url) {
return null;
}
System.out.println(url);
return imageServer+route;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
public class S3USConfig{
public static String accessKey = "";
public static String accessSecret = "";
public static String serviceEndpoint = "";
public static String signingRegion = "";
public static String imageServer="";
public static String bucketName = "";
}