All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.admin4j.oss.OssTemplate Maven / Gradle / Ivy

Go to download

封装基于Amazon S3的OSS对象存储服务。在SpringBoot 中通过封装,简单地方式将文件存储到 MinIO、阿里云OSS、华为云OBS、七牛云Kodo、腾讯云COS等支持 S3 协议的平台

There is a newer version: 0.10.0
Show newest version
package com.admin4j.oss;

import com.amazonaws.services.s3.model.Bucket;
import com.amazonaws.services.s3.model.PutObjectResult;
import com.amazonaws.services.s3.model.S3Object;
import com.amazonaws.services.s3.model.S3ObjectSummary;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.concurrent.TimeUnit;

/**
 * oss操作模板
 *
 * @author andanyang
 * @since 2023/4/13 15:20
 */
public interface OssTemplate {
    /**
     * 创建bucket
     *
     * @param bucketName bucket名称
     */
    void createBucket(String bucketName);

    /**
     * 获取所有的bucket
     *
     * @return Bucket list
     */
    List getAllBuckets();

    /**
     * 通过bucket名称删除bucket
     *
     * @param bucketName
     */
    void removeBucket(String bucketName);

    /**
     * 上传文件
     *
     * @param bucketName  bucket名称
     * @param objectName  文件名称
     * @param stream      文件流
     * @param contextType 文件类型
     * @throws Exception
     */
    PutObjectResult putObject(String bucketName, String objectName, InputStream stream, String contextType) throws IOException;

    /**
     * 上传文件
     *
     * @param bucketName bucket名称
     * @param objectName 文件名称
     * @param stream     文件流
     * @throws Exception
     */
    PutObjectResult putObject(String bucketName, String objectName, InputStream stream) throws IOException;

    /**
     * 获取文件
     *
     * @param bucketName bucket名称
     * @param objectName 文件名称
     * @return S3Object
     */
    S3Object getObject(String bucketName, String objectName);

    /**
     * 获取对象的url
     *
     * @param bucketName
     * @param objectName
     * @param expires
     * @return 对象的url
     */
    String getObjectURL(String bucketName, String objectName, Integer expires, TimeUnit timeUnit);

    /**
     * 通过bucketName和objectName删除对象
     *
     * @param bucketName
     * @param objectName
     * @throws Exception
     */
    void removeObject(String bucketName, String objectName);

    /**
     * 根据文件前置查询文件
     *
     * @param bucketName bucket名称
     * @param prefix     前缀
     * @param recursive  是否递归查询
     * @return S3ObjectSummary 列表
     */
    List getAllObjectsByPrefix(String bucketName, String prefix, boolean recursive);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy