利用函数计算流式 gz 打包 ECS 上的单个 超大文件

  1. 云栖社区>
  2. 阿里云 Serverless Computing>
  3. 博客>
  4. 正文

利用函数计算流式 gz 打包 ECS 上的单个 超大文件

rsong 2019-07-21 15:18:19 浏览442
展开阅读全文

背景

在某些业务场景下,生成超大的日志文件或者其他文件, 这些文件需要及时移出并 gz 压缩保存到 OSS,但是压缩文件可能会大于 3G 超出函数计算执行环境的最大内存限制, 本文提供流式解决这个问题的方案

  • 函数计算配置VPC, 内网打通ecs
  • OSS 和 函数计算在相同 region, 内网传输

示例代码

依赖使用第三方库 paramiko, 但是默认的库在传输大文件上有传输速率限制, 需要做如下改造, 同时构造 paramiko.SFTPClient 的时候需要设置好 window_size 和 max_packet_size 这两个参数

image

import paramiko
import gzip
import oss2
import logging
import os
import time

logging.getLogger("oss2
附件下载: demo.zip[rsong].1564317905.zip

网友评论

登录后评论
0/500
评论
rsong
+ 关注
所属云栖号: 阿里云 Serverless Computing