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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM