Class OssTemplate

java.lang.Object
cn.twelvet.oss.service.OssTemplate
All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean

public class OssTemplate extends Object implements org.springframework.beans.factory.InitializingBean
aws-s3 通用存储操作 支持所有兼容s3协议的云存储: {阿里云OSS,腾讯云COS,七牛云,京东云,minio 等}
Author:
twelvet
  • Constructor Details

    • OssTemplate

      public OssTemplate(OssProperties ossProperties)
      注入OssProperties
      Parameters:
      ossProperties - OssProperties
  • Method Details

    • createBucket

      public void createBucket(String bucketName)
      创建bucket
      Parameters:
      bucketName - bucket名称
    • getAllBuckets

      public List<com.amazonaws.services.s3.model.Bucket> getAllBuckets()
      获取全部bucket 请参考 AWS S3 API 文档(http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjects)以获取更多信息
      Returns:
      List Bucket
    • getBucket

      public Optional<com.amazonaws.services.s3.model.Bucket> getBucket(String bucketName)
      请参考 AWS S3 API 文档(http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjects)以获取更多信息
      Parameters:
      bucketName - bucket名称
      Returns:
      Optional Bucket
    • removeBucket

      public void removeBucket(String bucketName)
      Parameters:
      bucketName - bucket名称
      See Also:
    • getAllObjectsByPrefix

      public List<com.amazonaws.services.s3.model.S3ObjectSummary> getAllObjectsByPrefix(String bucketName, String prefix)
      根据文件前置查询文件 请参考 AWS S3 API 文档(http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjects)以获取更多信息
      Parameters:
      bucketName - bucket名称
      prefix - 前缀
      Returns:
      List S3ObjectSummary
    • getObjectURL

      public String getObjectURL(String bucketName, String objectName, int minutes)
      获取文件外链,只用于下载
      Parameters:
      bucketName - bucket名称
      objectName - 文件名称
      minutes - 过期时间,单位分钟,请注意该值必须小于7天
      Returns:
      url
      See Also:
      • AmazonS3.generatePresignedUrl(String bucketName, String key, Date expiration)
    • getObjectURL

      public String getObjectURL(String bucketName, String objectName, Duration expires)
      获取文件外链,只用于下载
      Parameters:
      bucketName - bucket名称
      objectName - 文件名称
      expires - 过期时间,请注意该值必须小于7天
      Returns:
      url
      See Also:
      • AmazonS3.generatePresignedUrl(String bucketName, String key, Date expiration)
    • getPutObjectURL

      public String getPutObjectURL(String bucketName, String objectName, int minutes)
      获取文件上传外链,只用于上传
      Parameters:
      bucketName - bucket名称
      objectName - 文件名称
      minutes - 过期时间,单位分钟,请注意该值必须小于7天
      Returns:
      url
      See Also:
      • AmazonS3.generatePresignedUrl(String bucketName, String key, Date expiration)
    • getPutObjectURL

      public String getPutObjectURL(String bucketName, String objectName, Duration expires)
      获取文件上传外链,只用于上传
      Parameters:
      bucketName - bucket名称
      objectName - 文件名称
      expires - 过期时间,请注意该值必须小于7天
      Returns:
      url
      See Also:
      • AmazonS3.generatePresignedUrl(String bucketName, String key, Date expiration)
    • getObjectURL

      public String getObjectURL(String bucketName, String objectName, int minutes, com.amazonaws.HttpMethod method)
      获取文件外链
      Parameters:
      bucketName - bucket名称
      objectName - 文件名称
      minutes - 过期时间,单位分钟,请注意该值必须小于7天
      method - 文件操作方法:GET(下载)、PUT(上传)
      Returns:
      url
      See Also:
      • AmazonS3.generatePresignedUrl(String bucketName, String key, Date expiration, HttpMethod method)
    • getObjectURL

      public String getObjectURL(String bucketName, String objectName, Duration expires, com.amazonaws.HttpMethod method)
      获取文件外链
      Parameters:
      bucketName - bucket名称
      objectName - 文件名称
      expires - 过期时间,请注意该值必须小于7天
      method - 文件操作方法:GET(下载)、PUT(上传)
      Returns:
      url
      See Also:
      • AmazonS3.generatePresignedUrl(String bucketName, String key, Date expiration, HttpMethod method)
    • getObjectURL

      public String getObjectURL(String bucketName, String objectName)
      获取文件URL

      If the object identified by the given bucket and key has public read permissions (ex: CannedAccessControlList.PublicRead), then this URL can be directly accessed to retrieve the object's data.

      Parameters:
      bucketName - bucket名称
      objectName - 文件名称
      Returns:
      url
    • getObject

      public com.amazonaws.services.s3.model.S3Object getObject(String bucketName, String objectName)
      获取文件
      Parameters:
      bucketName - bucket名称
      objectName - 文件名称
      Returns:
      二进制流
      See Also:
    • putObject

      public void putObject(String bucketName, String objectName, InputStream stream) throws IOException
      上传文件
      Parameters:
      bucketName - bucket名称
      objectName - 文件名称
      stream - 文件流
      Throws:
      IOException - IOException
    • putObject

      public void putObject(String bucketName, String objectName, String contextType, InputStream stream) throws IOException
      上传文件 指定 contextType
      Parameters:
      bucketName - bucket名称
      objectName - 文件名称
      stream - 文件流
      contextType - 文件类型
      Throws:
      IOException - IOException
    • putObject

      public com.amazonaws.services.s3.model.PutObjectResult putObject(String bucketName, String objectName, InputStream stream, long size, String contextType)
      上传文件 请参考 AWS S3 API 文档(http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjects)以获取更多信息
      Parameters:
      bucketName - bucket名称
      objectName - 文件名称
      stream - 文件流
      size - 大小
      contextType - 类型
      Returns:
      PutObjectResult
    • getObjectInfo

      public com.amazonaws.services.s3.model.S3Object getObjectInfo(String bucketName, String objectName)
      获取文件信息
      Parameters:
      bucketName - bucket名称
      objectName - 文件名称
      Returns:
      S3Object
      See Also:
    • removeObject

      public void removeObject(String bucketName, String objectName)
      删除文件
      Parameters:
      bucketName - bucket名称
      objectName - 文件名称
      See Also:
    • afterPropertiesSet

      public void afterPropertiesSet() throws Exception
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
      Throws:
      Exception