feat: return gateway url and local url while upload file
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -15,6 +15,11 @@ public class SysFile
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 文件内部地址
|
||||
*/
|
||||
private String localUrl;
|
||||
|
||||
/**
|
||||
* 文件地址
|
||||
*/
|
||||
@@ -30,6 +35,14 @@ public class SysFile
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getLocalUrl() {
|
||||
return localUrl;
|
||||
}
|
||||
|
||||
public void setLocalUrl(String localUrl) {
|
||||
this.localUrl = localUrl;
|
||||
}
|
||||
|
||||
public String getUrl()
|
||||
{
|
||||
return url;
|
||||
@@ -44,6 +57,7 @@ public class SysFile
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("name", getName())
|
||||
.append("localUrl", getLocalUrl())
|
||||
.append("url", getUrl())
|
||||
.toString();
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
import org.wfc.common.core.domain.R;
|
||||
import org.wfc.common.core.utils.file.FileUtils;
|
||||
import org.wfc.file.service.ISysFileService;
|
||||
import org.wfc.file.service.LocalSysFileServiceImpl.FileUploadResult;
|
||||
import org.wfc.system.api.domain.SysFile;
|
||||
|
||||
/**
|
||||
@@ -30,10 +31,12 @@ public class SysFileController {
|
||||
public R<SysFile> upload(MultipartFile file) {
|
||||
try {
|
||||
// 上传并返回访问地址
|
||||
String url = sysFileService.uploadFile(file);
|
||||
FileUploadResult urlResult = sysFileService.uploadFile(file);
|
||||
SysFile sysFile = new SysFile();
|
||||
sysFile.setName(FileUtils.getName(url));
|
||||
sysFile.setUrl(url);
|
||||
sysFile.setName(FileUtils.getName(urlResult.getLocalUrl()));
|
||||
sysFile.setName(FileUtils.getName(urlResult.getGatewayUrl()));
|
||||
sysFile.setLocalUrl(urlResult.getLocalUrl());
|
||||
sysFile.setUrl(urlResult.getGatewayUrl());
|
||||
return R.ok(sysFile);
|
||||
} catch (Exception e) {
|
||||
log.error("上传文件失败", e);
|
||||
|
||||
@@ -28,19 +28,20 @@ public class FastDfsSysFileServiceImpl implements ISysFileService
|
||||
private FastFileStorageClient storageClient;
|
||||
|
||||
/**
|
||||
* FastDfs文件上传接口
|
||||
* FastDFS文件上传接口
|
||||
*
|
||||
* @param file 上传的文件
|
||||
* @return 访问地址
|
||||
* @return FileUploadResult 包含本地和网关访问地址
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public String uploadFile(MultipartFile file) throws Exception
|
||||
public LocalSysFileServiceImpl.FileUploadResult uploadFile(MultipartFile file) throws Exception
|
||||
{
|
||||
InputStream inputStream = file.getInputStream();
|
||||
StorePath storePath = storageClient.uploadFile(inputStream, file.getSize(),
|
||||
FileTypeUtils.getExtension(file), null);
|
||||
IoUtils.closeQuietly(inputStream);
|
||||
return domain + "/" + storePath.getFullPath();
|
||||
String fileUrl = domain + "/" + storePath.getFullPath();
|
||||
return new LocalSysFileServiceImpl.FileUploadResult(fileUrl, fileUrl);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.wfc.file.service;
|
||||
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.wfc.file.service.LocalSysFileServiceImpl.FileUploadResult;
|
||||
|
||||
/**
|
||||
* 文件上传接口
|
||||
@@ -16,5 +17,5 @@ public interface ISysFileService
|
||||
* @return 访问地址
|
||||
* @throws Exception
|
||||
*/
|
||||
public String uploadFile(MultipartFile file) throws Exception;
|
||||
public FileUploadResult uploadFile(MultipartFile file) throws Exception;
|
||||
}
|
||||
|
||||
@@ -33,17 +33,42 @@ public class LocalSysFileServiceImpl implements ISysFileService
|
||||
@Value("${file.path}")
|
||||
private String localFilePath;
|
||||
|
||||
@Value("${file.gateway}")
|
||||
public String gateway;
|
||||
|
||||
@Value("${file.pathPrefix}")
|
||||
public String pathPrefix;
|
||||
|
||||
/**
|
||||
* 本地文件上传接口
|
||||
*
|
||||
* @param file 上传的文件
|
||||
* @return 访问地址
|
||||
* @return FileUploadResult 包含本地和网关访问地址
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public String uploadFile(MultipartFile file) throws Exception
|
||||
{
|
||||
public FileUploadResult uploadFile(MultipartFile file) throws Exception {
|
||||
String name = FileUploadUtils.upload(localFilePath, file);
|
||||
return domain + localFilePrefix + name;
|
||||
String localUrl = domain + localFilePrefix + name;
|
||||
String gatewayUrl = gateway + pathPrefix + localFilePrefix + name;
|
||||
return new FileUploadResult(localUrl, gatewayUrl);
|
||||
}
|
||||
|
||||
public static class FileUploadResult {
|
||||
private final String localUrl;
|
||||
private final String gatewayUrl;
|
||||
|
||||
public FileUploadResult(String localUrl, String gatewayUrl) {
|
||||
this.localUrl = localUrl;
|
||||
this.gatewayUrl = gatewayUrl;
|
||||
}
|
||||
|
||||
public String getLocalUrl() {
|
||||
return localUrl;
|
||||
}
|
||||
|
||||
public String getGatewayUrl() {
|
||||
return gatewayUrl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,11 +28,11 @@ public class MinioSysFileServiceImpl implements ISysFileService
|
||||
* Minio文件上传接口
|
||||
*
|
||||
* @param file 上传的文件
|
||||
* @return 访问地址
|
||||
* @return FileUploadResult 包含本地和网关访问地址
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public String uploadFile(MultipartFile file) throws Exception
|
||||
public LocalSysFileServiceImpl.FileUploadResult uploadFile(MultipartFile file) throws Exception
|
||||
{
|
||||
String fileName = FileUploadUtils.extractFilename(file);
|
||||
InputStream inputStream = file.getInputStream();
|
||||
@@ -44,6 +44,7 @@ public class MinioSysFileServiceImpl implements ISysFileService
|
||||
.build();
|
||||
client.putObject(args);
|
||||
IoUtils.closeQuietly(inputStream);
|
||||
return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName;
|
||||
String fileUrl = minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName;
|
||||
return new LocalSysFileServiceImpl.FileUploadResult(fileUrl, fileUrl);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@ file:
|
||||
domain: wfc-file:${WFC_FILE_PORT:9201}
|
||||
path: /opt/wfc/upload
|
||||
prefix: /kyc
|
||||
gateway: http://${GATEWAY_SERVER_IP}:${GATEWAY_SERVER_PORT} # 新增网关地址配置
|
||||
pathPrefix: /file # 新增文件模块地址前缀
|
||||
|
||||
# FastDFS配置
|
||||
fdfs:
|
||||
|
||||
Reference in New Issue
Block a user