# obs文件上传服务 # 自定义starter封装好的api ## 一.桶的操作 - 查询所有桶 - 桶的新增 - 桶的删除 - 设置桶内文件对象过期时间 ## 二.对象的操作 - 1.查询某个桶的所有对象 - 2.上传某个对象(全局访问权限版2个)(通过流+通过file对象) - 3.上传某个对象(设置对象自定义元数据版) - 4.获取某个对象的所有信息 - 5.获取某个对象的元数据 - 6.获取某个对象的流 - 7.拷贝对象 - 8.删除单个对象 - 9.下载某个对象到本地 ## 三.文件夹的操作 - 1.创建文件夹 - 2.判断对象是否是文件夹 - 3.列举文件夹中的所有对象 - 4.删除某个文件夹下的所有对象 ## 四.日志优化 - 自定义日志输出文件路径(暂时设置为不输出到文件) ## 五.清理临时文件策略 ### 1.定时任务方式 - 1.临时文件上传到指令的临时文件桶,定时清理临时桶内的所有文件(比较安全) - 2.临时文件和正式文件放在一个桶内,按照前缀区分是否是临时文件,比如临时文件 以/tmp开头,定时删除temp文件下的临时文件 ### 2.设置文件有效期方式 - 上传是可以设置临时文件一个属性,就是过期时长,到期会被obs自动清理。不用我们手动操作了。 # 如何使用starter ## 前提 请注意 - obs的jar包在maven仓库的版本很老了,所以去官网下载比较新的jar包。 - 我已将esdk-obs-java-3.19.11.1.jar加载进依赖或者上传到私服,我已经上传到自己的私服了,直接引pom即可,直接使用会报错, - 如果报错,请手动添加放在/obs-upload-spring-boot-starter/doc/lib下esdk-obs-java-3.19.11.1.jar ## 使用步骤1.引入自定义obs的starter ```xml <dependency> <groupId>com.wuzheng</groupId> <artifactId>obs-upload-spring-boot-starter</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> ``` ## 使用步骤2.配置文件设置参数 ```yaml obs: #端点(xx和地区对应) endPoint: http://obs.xxx.myhuaweicloud.com ak: yourself ak sk: yourslef sk bucketName: yourself 桶的名字 #地区 bucketLoc: xxx ``` ## 使用步骤3.启动类上加上启动注解 ```java @EnableObsAutoConfiguration ``` # 以下内容请忽略(个人开发此starter的记录而已)开发starter时 相关 ## 一.华为obs的jar包放到私服仓库 ``` mvn deploy:deploy-file ^ -DgroupId=com.huaweicloud ^ -DartifactId=esdk-obs-java ^ -Dversion=3.19.11.1 ^ -Dpackaging=jar ^ -Dfile=E:/workspace/springboot2/vehicle-info/common-upload/src/main/resources/lib/esdk-obs-java-3.19.11.1.jar ^ -Durl=http://192.168.0.118/repository/wz_dev_release ^ -DrepositoryId=wz_dev_release ^ ``` ## 二.开发obs starter需要的其他包位置目录: ``` /common-upload/doc/lib/ 下 ``` 或者直接引入下面的maven依赖包: ``` <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.10.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.10.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.10.0</version> </dependency> <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.11.0</version> </dependency> <dependency> <groupId>com.squareup.okio</groupId> <artifactId>okio</artifactId> <version>1.14.0</version> </dependency> <!--<dependency> <groupId>com.huaweicloud</groupId> <artifactId>esdk-obs-java</artifactId> <version>3.19.11.1</version> </dependency> --> ``` created by hfl