# cloudstorage-spring-boot-starter **Repository Path**: pym10086/cloudstorage-spring-boot-starter ## Basic Information - **Project Name**: cloudstorage-spring-boot-starter - **Description**: 云存储,支持阿里云、华为云、minio - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-30 - **Last Updated**: 2024-01-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 云存储工具组件 云存储SpringBoot工具组件 ## 如何在 SpringBoot 环境中使用云存储工具 ### 1、引入 Cloudstorage 依赖 Cloudstorage工具提供了获取对象信息,上传对象和下载对象等功能 ```xml com.pym cloudstorage-spring-boot-starter 1.0.2.RELEASE ``` ### 2、配置 Cloudstorage 工具 在应用configurer包创建CloudStorageConfiguration配置类,添加启动注解`@EnableCloudStorage` 并配置CloudStorageStore云存储服务器源配置,实现业务逻辑 ```java /** 云存储配置 * @Author: wanglei * @Date: 2021/2/25 */ @Configuration @EnableCloudStorage public class CloudStorageConfiguration { @Bean public CloudStorageStore cloudStorageStore() { return new CloudStorageStore() { /** * 获取可上传的云存储服务器配置 * @return */ @Override public CloudStorageInfo getPutCloudStorageInfo() { //业务实现代码 return null; } /** * 根据bucketName获取云存储服务器配置 * @param bucketName * @return */ @Override public CloudStorageInfo getCloudStorageInfo(String bucketName) { //业务实现代码 return null; } }; } } ``` ### 3、使用 Cloudstorage 工具 ```java @Autowired CloudStorageTemplate cloudStorageTemplate; /** * 上传对象 * * @param objectname 对象名称 * @param inputStream 对象流数据 * @return 文件所在服务器的地址 */ String putObject(String objectname, InputStream inputStream) // 例:String fileUrl = cloudStorageTemplate.putObject("wanglei/hahah.txt",new ByteArrayInputStream("helloword".getBytes(StandardCharsets.UTF_8))); /** * 下对象到本地文件 * * @param objectUrl 对象URL地址 * @param filePath 本地文件地址 * @return 本地文件地址 */ String getObject(String objectUrl, String filePath); // 例:String filePath = cloudStorageTemplate.getObject("http://192.168.206.183:9090/archives/wanglei/hahah.txt", "C:\\Users\\wanglei\\logs\\examplefile.txt"); /** * 获取对象信息 * * @param objectUrl 对象URL地址 * @return */ ObjectInfo statObject(String objectUrl); // 例:ObjectInfo objectInfo = cloudStorageTemplate.statObject("http://192.168.206.183:9090/archives/wanglei/hahah.txt"); /** * 获取临时访问对象URL * * @param objectUrl 对象URL地址 * @param expiry 失效时间(以秒为单位) * @return */ String generatePresignedUrl(String objectUrl, Integer expiry); // 例:String url = cloudStorageTemplate.generatePresignedUrl("http://192.168.206.183:9090/archives/3391721691502/V11/410100000000013-01-13903-123-2020-D30-0023301.zip",10); ``` 对象信息 ObjectInfo ```java /** * 对象信息 * * @Author: wanglei * @Date: 2021/2/26 */ public class ObjectInfo { /** * 对象最后修改时间 */ private Date lastModified; /** * 对象大小 */ private long size; /** * 对象url地址 */ private String url; /** * 对象名称 */ private String name; /** * 对象地址 */ private String path; /** * 对象文件后缀 */ private String suffix; } ```