AWS S3 JAVA SDK 实现文件上传,下载

上篇整理了阿里云OSS JAVA SDK实现文件的上传下载,今天记录一下AWS S3

OSS: Object Storage Service,OSS 对象存储服务

S3: Amazon Simple Storage Service,亚马逊简单存储服务

 

具体的实现:

1. 引入Maven依赖

        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-s3</artifactId>
            <version>1.11.336</version>
        </dependency>

 

2. 配置项

S3:
  region: us-east-1
  accessKeyId: ***********
  accessKeySecret: ********
  bucketName: my-bucket

 

3. 创建AmazonS3对象

    @Value("${S3.accessKeyId}")
    private String accessKeyId;
    @Value("${S3.accessKeySecret}")
    private String accessKeySecret;
    @Value("${S3.bucketName}")
    private String bucketName;
    @Value("${S3.region}")
    private String regionName;
public AmazonS3 amazonS3() {
        AWSCredentials awsCredentials = new BasicAWSCredentials(accessKeyId, accessKeySecret);
        AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(awsCredentials));
        //设置S3的地区
        builder.setRegion(regionName);
        AmazonS3 s3Client = builder.build();
        return s3Client;
    }

 

4. 实现上传下载

上传:

    public PutObjectResult upload(String fileName, InputStream inputStream) throws IOException {
        AmazonS3 amazonS3Client =  this.amazoneS3();
        ObjectMetadata objectMetadata = new ObjectMetadata();
        objectMetadata.setContentType("plain/text");
        objectMetadata.setContentLength(Long.valueOf(inputStream.available()));
        PutObjectResult putObjectRequest = amazonS3Client.putObject(new PutObjectRequest(bucketName, fileName, inputStream, objectMetadata));

        return putObjectRequest ;
    }

下载:

public InputStream download(String key){
    S3Object object = this.s3Client().getObject(new GetObjectRequest(bucketName, key));
    return object.getObjectContent();  
}

照旧,官方的帮助文档必不可少:

Performing Operations on Amazon S3 Objects:

https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-s3-objects.html

 

posted @ 2021-01-17 11:13  JamesPlay  阅读(9812)  评论(0编辑  收藏  举报