package org.dromara.system.service;
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.system.domain.bo.SysOssBo;
|
import org.dromara.system.domain.vo.SysOssVo;
|
import jakarta.servlet.http.HttpServletResponse;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import java.io.File;
|
import java.io.IOException;
|
import java.util.Collection;
|
import java.util.List;
|
|
/**
|
* 文件上传 服务层
|
*
|
* @author Lion Li
|
*/
|
public interface ISysOssService {
|
|
/**
|
* 查询OSS对象存储列表
|
*
|
* @param sysOss OSS对象存储分页查询对象
|
* @param pageQuery 分页查询实体类
|
* @return 结果
|
*/
|
TableDataInfo<SysOssVo> queryPageList(SysOssBo sysOss, PageQuery pageQuery);
|
|
/**
|
* 根据一组 ossIds 获取对应的 SysOssVo 列表
|
*
|
* @param ossIds 一组文件在数据库中的唯一标识集合
|
* @return 包含 SysOssVo 对象的列表
|
*/
|
List<SysOssVo> listByIds(Collection<Long> ossIds);
|
|
/**
|
* 根据 ossId 从缓存或数据库中获取 SysOssVo 对象
|
*
|
* @param ossId 文件在数据库中的唯一标识
|
* @return SysOssVo 对象,包含文件信息
|
*/
|
SysOssVo getById(Long ossId);
|
|
/**
|
* 上传 MultipartFile 到对象存储服务,并保存文件信息到数据库
|
*
|
* @param file 要上传的 MultipartFile 对象
|
* @return 上传成功后的 SysOssVo 对象,包含文件信息
|
*/
|
SysOssVo upload(MultipartFile file);
|
|
/**
|
* 上传文件到对象存储服务,并保存文件信息到数据库
|
*
|
* @param file 要上传的文件对象
|
* @return 上传成功后的 SysOssVo 对象,包含文件信息
|
*/
|
SysOssVo upload(File file);
|
|
/**
|
* 文件下载方法,支持一次性下载完整文件
|
*
|
* @param ossId OSS对象ID
|
* @param response HttpServletResponse对象,用于设置响应头和向客户端发送文件内容
|
*/
|
void download(Long ossId, HttpServletResponse response) throws IOException;
|
|
/**
|
* 删除OSS对象存储
|
*
|
* @param ids OSS对象ID串
|
* @param isValid 判断是否需要校验
|
* @return 结果
|
*/
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
|
}
|