前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >下载项目运行日志 – 生产违规操作

下载项目运行日志 – 生产违规操作

作者头像
收心
发布2024-06-04 12:52:05
710
发布2024-06-04 12:52:05
举报
文章被收录于专栏:Java实战博客

本代码仅适用单节点!

代码语言:javascript
复制
@ApiOperation(value = "获取所有服务器日志") // Swagger API 文档注解
@GetMapping("/getServerLog") // 建议Get请求,可直接浏览器拼接地址栏
public void getLogZip(HttpServletResponse response) throws Exception {
    String property = System.getProperty("user.dir"); // 获取当前项目的运行位置
    log.info("当前项目运行位置是:{}", property); // 记录当前项目的运行位置
    String logPath = property + "/AH.xlsx"; // 你的日志文件路径,可以具体到某个文件,也可以精确到文件夹
    File logFile = new File(logPath); // 创建代表日志文件的 File 对象
    if (logFile.exists()) { // 检查日志文件是否存在
        File zip = null; // 声明一个用于存储压缩文件的变量
        try {
            zip = ZipUtil.zip(logFile); // 使用 ZipUtil 类对日志文件进行压缩
            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(zip.getName(), "UTF-8")); // 设置响应头,告诉浏览器将响应内容作为附件下载,并指定下载文件的名称
            response.setContentType("application/octet-stream"); // 设置响应的内容类型为 application/octet-stream,表示响应内容是一个二进制流
            IoUtil.write(response.getOutputStream(), false, FileUtil.readBytes(zip)); // 将压缩后的日志文件内容写入到 HttpServletResponse 的输出流中,从而向客户端发送文件内容
        } finally {
            if (zip != null) {
                zip.delete(); // 删除临时的压缩文件
            }
        }
    }
}

至于文件夹加密的问题,由于 HTTP 协议本身不提供对文件夹的加密支持,因此无法在代码中直接实现文件夹加密。一般情况下,需要在客户端或服务器端使用加密算法和密码学技术对文件夹中的文件进行加密,然后将加密后的文件打包成一个加密的压缩文件,再进行下载。在客户端下载后,用户需要提供解密密钥或密码来还原文件夹结构。

特殊说明: 上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com 第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取全部资料 ❤

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档