Search in sources :

Example 6 with SysOss

use of com.ruoyi.system.domain.SysOss in project RuoYi-Vue-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());
    IOssStrategy 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.getServiceType().getValue());
    baseMapper.insert(oss);
    return oss;
}
Also used : SysOss(com.ruoyi.system.domain.SysOss) ServiceException(com.ruoyi.common.exception.ServiceException) IOssStrategy(com.ruoyi.oss.service.IOssStrategy) UploadResult(com.ruoyi.oss.entity.UploadResult) IOException(java.io.IOException)

Example 7 with SysOss

use of com.ruoyi.system.domain.SysOss in project RuoYi-Vue-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) {
        IOssStrategy storage = OssFactory.instance(sysOss.getService());
        storage.delete(sysOss.getUrl());
    }
    return baseMapper.deleteBatchIds(ids) > 0;
}
Also used : SysOss(com.ruoyi.system.domain.SysOss) IOssStrategy(com.ruoyi.oss.service.IOssStrategy)

Example 8 with SysOss

use of com.ruoyi.system.domain.SysOss in project RuoYi-Flowable-Plus by KonBAI-Q.

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.getFileName());
    return R.ok(map);
}
Also used : SysOss(com.ruoyi.system.domain.SysOss) ServiceException(com.ruoyi.common.exception.ServiceException) HashMap(java.util.HashMap) Log(com.ruoyi.common.annotation.Log) SaCheckPermission(cn.dev33.satoken.annotation.SaCheckPermission)

Example 9 with SysOss

use of com.ruoyi.system.domain.SysOss in project RuoYi-Flowable-Plus by KonBAI-Q.

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.system.domain.SysOss) ServiceException(com.ruoyi.common.exception.ServiceException) HttpException(cn.hutool.http.HttpException) SaCheckPermission(cn.dev33.satoken.annotation.SaCheckPermission)

Example 10 with SysOss

use of com.ruoyi.system.domain.SysOss in project RuoYi-Flowable-Plus by KonBAI-Q.

the class SysOssServiceImpl method upload.

@Override
public SysOss upload(MultipartFile file) {
    String originalfileName = file.getOriginalFilename();
    String suffix = StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length());
    IOssStrategy 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.getServiceType().getValue());
    baseMapper.insert(oss);
    return oss;
}
Also used : SysOss(com.ruoyi.system.domain.SysOss) ServiceException(com.ruoyi.common.exception.ServiceException) IOssStrategy(com.ruoyi.oss.service.IOssStrategy) UploadResult(com.ruoyi.oss.entity.UploadResult) IOException(java.io.IOException)

Aggregations

SysOss (com.ruoyi.system.domain.SysOss)10 ServiceException (com.ruoyi.common.exception.ServiceException)6 SaCheckPermission (cn.dev33.satoken.annotation.SaCheckPermission)4 Log (com.ruoyi.common.annotation.Log)4 IOssStrategy (com.ruoyi.oss.service.IOssStrategy)4 HashMap (java.util.HashMap)4 HttpException (cn.hutool.http.HttpException)2 UploadResult (com.ruoyi.oss.entity.UploadResult)2 ApiImplicitParams (io.swagger.annotations.ApiImplicitParams)2 ApiOperation (io.swagger.annotations.ApiOperation)2 IOException (java.io.IOException)2