mirror of
https://gitcode.com/ageerle/ruoyi-ai.git
synced 2026-03-28 03:53:49 +08:00
feat: 集成阿里百炼API实现图片内容识别功能
添加DashscopeService接口及实现,用于调用阿里百炼API进行图片内容识别 修改PdfImageExtractService增加基于百炼API的图片处理逻辑 新增OSS服务方法支持临时文件处理和删除 更新配置文件添加百炼模型相关配置
This commit is contained in:
@@ -32,6 +32,15 @@ public interface ISysOssService {
|
||||
|
||||
String downloadByByte(Long ossId) throws IOException;
|
||||
|
||||
String downloadToTempPath(Long ossId) throws IOException;
|
||||
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* 根据文件路径删除文件
|
||||
*
|
||||
* @param filePath 文件路径
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
boolean deleteFile(String filePath);
|
||||
}
|
||||
|
||||
@@ -213,4 +213,48 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
|
||||
}
|
||||
return oss;
|
||||
}
|
||||
@Override
|
||||
public String downloadToTempPath(Long ossId) throws IOException {
|
||||
SysOssVo sysOss = SpringUtils.getAopProxy(this).getById(ossId);
|
||||
if (ObjectUtil.isNull(sysOss)) {
|
||||
throw new ServiceException("文件数据不存在!");
|
||||
}
|
||||
|
||||
OssClient storage = OssFactory.instance();
|
||||
try (InputStream inputStream = storage.getObjectContent(sysOss.getUrl())) {
|
||||
// 创建临时文件
|
||||
String suffix = StringUtils.isNotEmpty(sysOss.getFileSuffix()) ? sysOss.getFileSuffix() : "";
|
||||
java.io.File tempFile = java.io.File.createTempFile("download_", suffix);
|
||||
// 确保临时文件在JVM退出时删除
|
||||
tempFile.deleteOnExit();
|
||||
// 将输入流内容写入临时文件
|
||||
cn.hutool.core.io.FileUtil.writeFromStream(inputStream, tempFile);
|
||||
// 返回临时文件的绝对路径
|
||||
return tempFile.getAbsolutePath();
|
||||
} catch (Exception e) {
|
||||
throw new ServiceException(e.getMessage());
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 根据文件路径删除文件
|
||||
*
|
||||
* @param filePath 文件路径
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public boolean deleteFile(String filePath) {
|
||||
if (StringUtils.isEmpty(filePath)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
java.io.File file = new java.io.File(filePath);
|
||||
if (file.exists() && file.isFile()) {
|
||||
return file.delete();
|
||||
}
|
||||
return false;
|
||||
} catch (Exception e) {
|
||||
throw new ServiceException("删除文件失败: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user