初始话

This commit is contained in:
zk
2026-03-10 18:27:11 +08:00
commit c4efa7e917
75 changed files with 5083 additions and 0 deletions
@@ -0,0 +1,111 @@
package org.jiayunet.server;
import com.aliyun.oss.HttpMethod;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import org.jiayunet.constant.OssBucketEnum;
import org.jiayunet.constant.OssPathEnum;
import org.jiayunet.exception.BusinessException;
import org.jiayunet.exception.BusinessExpCodeEnum;
import org.jiayunet.mapper.OssFileMapper;
import org.jiayunet.oss.AliOssAbility;
import org.jiayunet.pojo.po.OssFile;
import org.jiayunet.pojo.vo.OssUrlVo;
import org.jiayunet.tool.UserSecurityTool;
import java.io.InputStream;
import java.time.Instant;
/**
* Oss 服务类
*
* @author zk
*/
@Service
@Slf4j
@AllArgsConstructor
public class OssServer {
private AliOssAbility aliOssAbility;
private OssFileMapper ossFileMapper;
/**
* 申请上传文件签名授权地址
*
* @return 地址
*/
@Transactional(rollbackFor = Exception.class)
public OssUrlVo requestUploadUrl(String fileName, OssPathEnum pathEnum) {
Assert.notNull(pathEnum, " 上传路径不能为空");
Assert.hasText(fileName, "文件不能为空");
Assert.isTrue(fileName.lastIndexOf(".") >= 0, "文件名必须包含类型");
OssBucketEnum jiaYuPet = OssBucketEnum.HuiDongNi;
Long userId = UserSecurityTool.getUserId();
String type = fileName.substring(fileName.lastIndexOf(".") + 1);
String path = pathEnum.getPath(fileName);
OssUrlVo ossUrlVo = new OssUrlVo();
try {
//保存上传信息
ossFileMapper.insert(new OssFile(null, jiaYuPet.getBucketName(), type, path, fileName, userId, 0, Instant.now(), null));
//获取上传Url
String uploadUrl = aliOssAbility.signatureUrl(jiaYuPet.getEndpoint(), jiaYuPet.getBucketName(), path, 60, HttpMethod.PUT);
//组装下载地址
String downloadUrl = jiaYuPet.getDomain() + "/" + path;
ossUrlVo.setUploadUrl(uploadUrl);
ossUrlVo.setDownloadUrl(downloadUrl);
return ossUrlVo;
} catch (Exception e) {
throw new BusinessException(BusinessExpCodeEnum.UNKNOWN_ERROR);
}
}
public OssUrlVo simpleUpload(String fileName, OssPathEnum pathEnum, InputStream inputStream) {
Assert.notNull(pathEnum, " 上传路径不能为空");
Assert.hasText(fileName, "文件不能为空");
Assert.isTrue(fileName.lastIndexOf(".") >= 0, "文件名必须包含类型");
OssBucketEnum jiaYuPet = OssBucketEnum.HuiDongNi;
Long userId = UserSecurityTool.getUserId();
String type = fileName.substring(fileName.lastIndexOf(".") + 1);
String path = pathEnum.getPath(fileName);
OssUrlVo ossUrlVo = new OssUrlVo();
try {
//保存上传信息
ossFileMapper.insert(new OssFile(null, jiaYuPet.getBucketName(), type, path, fileName, userId, 0, Instant.now(), null));
aliOssAbility.simpleUpload(jiaYuPet.getEndpoint(), jiaYuPet.getBucketName(), path, inputStream);
inputStream.close();
//组装下载地址
String downloadUrl = jiaYuPet.getDomain() + "/" + path;
ossUrlVo.setUploadUrl(downloadUrl);
ossUrlVo.setDownloadUrl(downloadUrl);
return ossUrlVo;
} catch (Exception e) {
throw new BusinessException(BusinessExpCodeEnum.UNKNOWN_ERROR);
}
}
}