本来想简单的记录一下上传/下载,后来看着看着,发现这块的知识点太多。就记录下简单的操作,后面在补充
- 这里采用fastdfs分布式文件系统的形式来进行操作的(关于fastdfs的知识点有很多,这里就不赘述)
- pom.xml
<dependency>
<groupId>com.github.tobato</groupId>
<artifactId>fastdfs-client</artifactId>
<version>1.26.2</version>
</dependency>
- 配置文件信息
fdfs:
so-timeout: 48000
connect-timeout: 48000
fastdfs.tracker_servers=
thumb-image: #缩略图生成参数
fastdfs.tracker_servers=${
tracker_server_addr}:22122
width: 200
height: 200
web-server-url:
tracker-list:
- 文件上传的实现部分代码
/**
* fastDFS文件上传
* (调用该方法的时候直接把StorePath的全路径返回即可)
* @param file 上传的文件 FastDFSFile
* @return StorePath 返回文件信息
*/
public StorePath uploadFile(MultipartFile file) {
//fastDFS包下,有兴趣的童鞋可以去瞅眼
StorePath storePath = null;
try {
//文件扩展名
String extensionName = FilenameUtils.getExtension(file.getOriginalFilename());
// 文件描述
Set<MataData> metaDataSet = new HashSet<MataData>();
metaDataSet.add(new MataData("fileName", file.getOriginalFilename()));
metaDataSet.add(new MataData("fileExt", extensionName ));
metaDataSet.add(new MataData("fileSize", String.valueOf(file.getSize())));
storePath = storageClient.uploadFile(file.getInputStream(), file.getSize(), extensionName , metaDataSet);
} catch (IOException e) {
LOGGER.error("FASTDFS:文件上传异常:{}", e.getMessage(), e