Java OSS图片预览接口

网关统一鉴权方式

HeaderAuthorization鉴权

@GetMapping(value = "/image/view")
public void downloadDoc(@RequestParam("filePath") String filePath, HttpServletResponse response) {

    log.info("download image. filePath={}", filePath);
    try (OutputStream outputStream = response.getOutputStream()){
        Result<byte[]> file = fileRpcApi.download(filePath);
        if (file.fail()) {
            response.getOutputStream().write(JSON.
                    toJSONString(ResultBuilder.failure(ResponseCode.NOT_FOUND, "file not found"))
                    .getBytes());
            return;
        }
        response.setContentType("image/jpeg;charset=utf-8");
        outputStream.write(file.getData());
    } catch (Exception e) {
        log.error("", e);
    }
}
@GetMapping(value = "/image/viewMulti")
@SuppressWarnings("unchecked")
public Result<List<String>> viewDoc(@RequestParam(value = "filePath", required = false) String filePath) {
    if (isBlank(filePath)) {
        return ResultBuilder.failure(ResponseCode.BAD_REQUEST, "filePath is empty!");
    }
    List<String> list = new ArrayList<>(3);
    Arrays.stream(filePath.split(",|;")).map(p -> p.trim()).forEach(p -> {
        Result<byte[]> file = fileRpcApi.download(p);
        if (file.fail()) {
            log.warn("file[{}] download fail", p);
            return;
        }
        list.add(Base64.getEncoder().encodeToString(file.getData()));
    });

    return ResultBuilder.success(list);
}

token鉴权方式

如:https://www.appblog.cn/image?token=xxxxxx

上一篇 Java原生JSONObject实现JSON串与Java对象互转
下一篇 GnuPG基本使用记录
目录
文章列表
1 Atlas技巧
Atlas技巧
2
JDK动态代理的原理
JDK动态代理的原理
3
Java通过解析文件获取apk信息
Java通过解析文件获取apk信息
4
ElasticSearch查询时termQuery匹配失败
ElasticSearch查询时termQuery匹配失败
5
Flutter防止键盘弹出导致超出屏幕
Flutter防止键盘弹出导致超出屏幕
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。