oss 文件存储使用手册
大约 2 分钟
oss 文件存储使用手册
一、组件介绍
该组件对接多个公有云对象存储服务,如阿里oss,腾讯cos,minio,ftp,sftp,local等,组件提供了上传,下载,删除,复制,移动,重命名 ,获取文件及目录信息等功能。
二、使用说明
pom引入
<dependency>
<groupId>com.pcitc.si</groupId>
<artifactId>common-oss-starter</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
以下根据使用存储目标位置 配置不同。
本地存储:使用本机存储时,不需要导入额外的依赖包,在application.yml中增加如下配置:
local
oss:
oss-type: local
base-path: 本地文件存储根路径
local:
slice-config:
task-num: 8
part-size: 104857600 # 1024*1024*100
FTP
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.8.0</version>
</dependency>
在application.yml中增加如下配置:
oss:
oss-type: ftp
base-path: FTP服务器存储根路径
ftp:
host: FTP服务器IP
port: FTP服务端口
user: 用户名
password: 密码
charset: 编码
SFTP
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.8.0</version>
</dependency>
在application.yml中增加如下配置:
oss:
oss-type: sftp
base-path: SFTP服务器存储根路径
sftp:
host: SFTP服务器IP
port: SFTP服务端口
user: 用户名
password: 密码
charset: 编码
阿里云
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.13.2</version>
</dependency>
在application.yml中增加如下配置:
oss:
oss-type: ali
base-path: 阿里云存储根路径
ali:
access-key-id: accessKeyId
access-key-secret: accessKeySecret
endpoint: endpoint
bucket-name: bucketName
slice-config:
task-num: 8
part-size: 104857600
三、使用示例
在需要使用的Spring Bean中注入StandardOssClient
对象即可。
@Autowired
StandardOssClient standardOssClient;
@ApiOperation("osstest") @PostMapping("/105030017")
public Result osstest(@RequestParam("file") MultipartFile[] files) throws IOException {
//上传
String originalFilename = files[0].getOriginalFilename();
byte [] byteArr = files[0].getBytes();
InputStream inputStream = new ByteArrayInputStream(byteArr);
OssInfo ossInfo = standardOssClient.upLoad(inputStream, originalFilename);
log.info(ossInfo.toString());
//下载
standardOssClient.downLoad("D:/1.jpg","F2020032914165430900000003.jpeg");
//查看文件消息
OssInfo info = standardOssClient.getInfo("F2020032914165430900000003.jpeg");
log.info(info.toString());
String basePath = standardOssClient.getBasePath();
//复制,重命名,移动,删除
standardOssClient.copy("F2020032914165430900000003.jpeg","a.jpg");
standardOssClient.copy("F2020032914165430900000003.jpeg","x.jpg");
standardOssClient.rename("a.jpg","b.jpg");
standardOssClient.move("x.jpg","a1.jpg");
standardOssClient.delete("b.jpg");
return Result.success();
}
四、 注意事项
本地存储、SFTP、FTP三种实现方式主要基于hutool提供的FileUtil
、FileNameUtil
、AbstractFtp
相关的工具。