天天看點

亞馬遜S3上傳示例

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 = "";

}