OssStorageService.java 1.25 KB
package com.infoloop.tianting.server;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.GetObjectRequest;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.InputStream;

public class OssStorageService implements StorageService{
    private final OSS ossClient;

    public OssStorageService(String endpoint, String accessKeyId, String accessKeySecret) {
        this.ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
    }

    @Override
    public void putObject(String bucketName, String key, byte[] data) {
        ossClient.putObject(bucketName, key, new ByteArrayInputStream(data));
    }

    @Override
    public void putObject(String bucketName, String key, File file) {
        ossClient.putObject(bucketName, key, file);
    }

    @Override
    public void putObject(String bucketName, String key, InputStream stream) {
        ossClient.putObject(bucketName, key, stream);
    }

    @Override
    public InputStream getObjectInputStream(String bucketName, String key) {
        return ossClient.getObject(new GetObjectRequest(bucketName, key)).getObjectContent();
    }

    @Override
    public void close() throws Exception {
        ossClient.shutdown();
    }
}