利用函数计算流式 gz 打包 ECS 上的单个 超大文件
背景 在某些业务场景下,生成超大的日志文件或者其他文件, 这些文件需要及时移出并 gz 压缩保存到 OSS,但是压缩文件可能会大于 3G 超出函数计算执行环境的最大内存限制, 本文提供流式解决这个问题的方案 函数计算配置VPC, 内网打通ecs OSS 和 函数计算在相同 region, 内网传输 示例代码 依赖使用第三方库 paramiko, 但是默认的库在传输大文件上有传输速率限制, 需要做如下改造, 同时构造 paramiko.SFTPClient 的时候需要设置好 window_size 和 max_packet_size 这两个参数 import paramiko import gzip import oss2 import logging import os import time logging.getLogger("oss2