Search in sources :

Example 1 with SysOss

use of com.ruoyi.resource.domain.SysOss in project RuoYi-Cloud-Plus by JavaLionLi.

the class SysOssServiceImpl method deleteWithValidByIds.

@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
    if (isValid) {
    // 做一些业务上的校验,判断是否需要校验
    }
    List<SysOss> list = baseMapper.selectBatchIds(ids);
    for (SysOss sysOss : list) {
        OssClient storage = OssFactory.instance(sysOss.getService());
        storage.delete(sysOss.getUrl());
    }
    return baseMapper.deleteBatchIds(ids) > 0;
}
Also used : SysOss(com.ruoyi.resource.domain.SysOss) OssClient(com.ruoyi.common.oss.core.OssClient)

Example 2 with SysOss

use of com.ruoyi.resource.domain.SysOss in project RuoYi-Cloud-Plus by JavaLionLi.

the class SysOssController method download.

@ApiOperation("下载OSS对象存储")
@SaCheckPermission("system:oss:download")
@GetMapping("/download/{ossId}")
public void download(@ApiParam("OSS对象ID") @PathVariable Long ossId, HttpServletResponse response) throws IOException {
    SysOss sysOss = iSysOssService.getById(ossId);
    if (ObjectUtil.isNull(sysOss)) {
        throw new ServiceException("文件数据不存在!");
    }
    response.reset();
    FileUtils.setAttachmentResponseHeader(response, sysOss.getOriginalName());
    response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE + "; charset=UTF-8");
    long data;
    try {
        data = HttpUtil.download(sysOss.getUrl(), response.getOutputStream(), false);
    } catch (HttpException e) {
        if (e.getMessage().contains("403")) {
            throw new ServiceException("无读取权限, 请在对应的OSS开启'公有读'权限!");
        } else {
            throw new ServiceException(e.getMessage());
        }
    }
    response.setContentLength(Convert.toInt(data));
}
Also used : SysOss(com.ruoyi.resource.domain.SysOss) ServiceException(com.ruoyi.common.core.exception.ServiceException) HttpException(cn.hutool.http.HttpException) SaCheckPermission(cn.dev33.satoken.annotation.SaCheckPermission)

Example 3 with SysOss

use of com.ruoyi.resource.domain.SysOss in project RuoYi-Cloud-Plus by JavaLionLi.

the class SysOssController method upload.

/**
 * 上传OSS对象存储
 */
@ApiOperation("上传OSS对象存储")
@ApiImplicitParams({ @ApiImplicitParam(name = "file", value = "文件", paramType = "query", dataTypeClass = File.class, required = true) })
@SaCheckPermission("system:oss:upload")
@Log(title = "OSS对象存储", businessType = BusinessType.INSERT)
@PostMapping("/upload")
public R<Map<String, String>> upload(@RequestPart("file") MultipartFile file) {
    if (ObjectUtil.isNull(file)) {
        throw new ServiceException("上传文件不能为空");
    }
    SysOss oss = iSysOssService.upload(file);
    Map<String, String> map = new HashMap<>(2);
    map.put("url", oss.getUrl());
    map.put("fileName", oss.getOriginalName());
    map.put("ossId", oss.getOssId().toString());
    return R.ok(map);
}
Also used : SysOss(com.ruoyi.resource.domain.SysOss) ServiceException(com.ruoyi.common.core.exception.ServiceException) HashMap(java.util.HashMap) Log(com.ruoyi.common.log.annotation.Log) SaCheckPermission(cn.dev33.satoken.annotation.SaCheckPermission)

Example 4 with SysOss

use of com.ruoyi.resource.domain.SysOss in project RuoYi-Cloud-Plus by JavaLionLi.

the class RemoteFileServiceImpl method upload.

/**
 * 文件上传请求
 */
@Transactional(rollbackFor = Exception.class)
@Override
public SysFile upload(String name, String originalFilename, String contentType, byte[] file) throws ServiceException {
    try {
        String suffix = StringUtils.substring(originalFilename, originalFilename.lastIndexOf("."), originalFilename.length());
        OssClient storage = OssFactory.instance();
        UploadResult uploadResult = storage.uploadSuffix(file, suffix, contentType);
        // 保存文件信息
        SysOss oss = new SysOss();
        oss.setUrl(uploadResult.getUrl());
        oss.setFileSuffix(suffix);
        oss.setFileName(uploadResult.getFilename());
        oss.setOriginalName(originalFilename);
        oss.setService(storage.getConfigKey());
        sysOssMapper.insert(oss);
        SysFile sysFile = new SysFile();
        sysFile.setName(uploadResult.getFilename());
        sysFile.setUrl(uploadResult.getUrl());
        return sysFile;
    } catch (Exception e) {
        log.error("上传文件失败", e);
        throw new ServiceException("上传文件失败");
    }
}
Also used : SysOss(com.ruoyi.resource.domain.SysOss) OssClient(com.ruoyi.common.oss.core.OssClient) ServiceException(com.ruoyi.common.core.exception.ServiceException) UploadResult(com.ruoyi.common.oss.entity.UploadResult) SysFile(com.ruoyi.resource.api.domain.SysFile) ServiceException(com.ruoyi.common.core.exception.ServiceException) Transactional(org.springframework.transaction.annotation.Transactional)

Example 5 with SysOss

use of com.ruoyi.resource.domain.SysOss in project RuoYi-Cloud-Plus by JavaLionLi.

the class SysOssServiceImpl method upload.

@Override
public SysOss upload(MultipartFile file) {
    String originalfileName = file.getOriginalFilename();
    String suffix = StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length());
    OssClient storage = OssFactory.instance();
    UploadResult uploadResult;
    try {
        uploadResult = storage.uploadSuffix(file.getBytes(), suffix, file.getContentType());
    } catch (IOException e) {
        throw new ServiceException(e.getMessage());
    }
    // 保存文件信息
    SysOss oss = new SysOss();
    oss.setUrl(uploadResult.getUrl());
    oss.setFileSuffix(suffix);
    oss.setFileName(uploadResult.getFilename());
    oss.setOriginalName(originalfileName);
    oss.setService(storage.getConfigKey());
    baseMapper.insert(oss);
    return oss;
}
Also used : SysOss(com.ruoyi.resource.domain.SysOss) OssClient(com.ruoyi.common.oss.core.OssClient) ServiceException(com.ruoyi.common.core.exception.ServiceException) UploadResult(com.ruoyi.common.oss.entity.UploadResult) IOException(java.io.IOException)

Aggregations

SysOss (com.ruoyi.resource.domain.SysOss)5 ServiceException (com.ruoyi.common.core.exception.ServiceException)4 OssClient (com.ruoyi.common.oss.core.OssClient)3 SaCheckPermission (cn.dev33.satoken.annotation.SaCheckPermission)2 UploadResult (com.ruoyi.common.oss.entity.UploadResult)2 HttpException (cn.hutool.http.HttpException)1 Log (com.ruoyi.common.log.annotation.Log)1 SysFile (com.ruoyi.resource.api.domain.SysFile)1 IOException (java.io.IOException)1 HashMap (java.util.HashMap)1 Transactional (org.springframework.transaction.annotation.Transactional)1