Module bus.starter

Class StorageService

java.lang.Object
org.miaixz.bus.starter.storage.StorageService

public class StorageService extends Object
存储服务提供类,用于管理和创建各种文件存储服务提供者实例。 该类维护了一个存储组件的缓存,支持通过配置或手动注册方式添加存储组件。

该类支持多种文件存储方式,包括但不限于:

  • 云存储服务:阿里云OSS、腾讯云COS、华为云OBS、亚马逊S3、七牛云、又拍云等
  • 本地存储:本地文件系统
  • 网络存储:FTP、SFTP、WebDAV等
  • 代码托管存储:GitLab

使用示例:

 // 创建配置
 StorageProperties properties = new StorageProperties();
 // 创建服务
 StorageProviderService service = new StorageProviderService(properties);
 // 获取阿里云OSS存储服务提供者
 Provider ossProvider = service.require(Registry.ALIYUN);
 // 上传文件
 ossProvider.upload("文件路径", "文件内容");
 
Since:
Java 17+
Author:
Kimi Liu
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    org.miaixz.bus.cache.CacheX
    缓存接口,用于存储文件元数据等临时数据。
    存储配置属性,包含各种存储组件的配置信息。
  • Constructor Summary

    Constructors
    Constructor
    Description
    使用默认缓存创建存储服务提供者实例。
    StorageService(StorageProperties properties, org.miaixz.bus.cache.CacheX CacheX)
    使用指定缓存创建存储服务提供者实例。
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    register(org.miaixz.bus.storage.Registry type, org.miaixz.bus.storage.Context context)
    注册存储组件到缓存中。
    org.miaixz.bus.storage.Provider
    require(org.miaixz.bus.storage.Registry type)
    根据存储组件类型获取对应的存储服务提供者实例。

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • properties

      public StorageProperties properties
      存储配置属性,包含各种存储组件的配置信息。
    • CacheX

      public org.miaixz.bus.cache.CacheX CacheX
      缓存接口,用于存储文件元数据等临时数据。
  • Constructor Details

    • StorageService

      public StorageService(StorageProperties properties)
      使用默认缓存创建存储服务提供者实例。
      Parameters:
      properties - 存储配置属性,不能为null
    • StorageService

      public StorageService(StorageProperties properties, org.miaixz.bus.cache.CacheX CacheX)
      使用指定缓存创建存储服务提供者实例。
      Parameters:
      properties - 存储配置属性,不能为null
      CacheX - 缓存实现,不能为null
  • Method Details

    • register

      public static void register(org.miaixz.bus.storage.Registry type, org.miaixz.bus.storage.Context context)
      注册存储组件到缓存中。 如果已存在相同类型的组件,则抛出异常。
      Parameters:
      type - 存储组件类型,不能为null
      context - 存储组件上下文,不能为null
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - 如果已存在相同类型的组件
    • require

      public org.miaixz.bus.storage.Provider require(org.miaixz.bus.storage.Registry type)
      根据存储组件类型获取对应的存储服务提供者实例。 首先从缓存中查找,如果不存在则从配置中获取。
      Parameters:
      type - 存储组件类型,不能为null
      Returns:
      对应的存储服务提供者实例
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - 如果找不到对应的存储组件