我需要能够在Python中通过FTP和SFTP上传文件,但有一些不常见的约束.

>绝对不能将文件写入磁盘.

>通过调用API并将JSON响应写入文件来生成文件.

>有多个对API的调用.一次调用API不可能检索全部结果.

>在进行整个文件存储之前,我无法通过执行所需的多个调用并追加到每个调用中来将完整结果存储在字符串变量中.文件可能很大,并且存在内存资源限制.每个块应该被发送并且内存被释放.

所以这是我想要的一些示例代码:

def chunks_generator():

range_list = range(0, 4000, 100)

for i in range_list:

data_chunk = requests.get(url=someurl, url_parameters={'offset':i, 'limit':100})

yield str(data_chunk)

def upload_file():

chunks_generator = chunks_generator()

for chunk in chunks_generator:

data_chunk= chunk

chunk_io = io.BytesIO(data_chunk)

ftp = FTP(self.host)

ftp.login(user=self.username, passwd=self.password)

ftp.cwd(self.remote_path)

ftp.storbinary("STOR " + "myfilename.json", chunk_io)

我只需要一个附加了所有块的文件.

我已经并且可以使用的是,如果我将整个文件存储在内存中,然后像这样立即发送:

string_io = io.BytesIO(all_chunks_together_in_one_string)

ftp = FTP(self.host)

ftp.login(user=self.username, passwd=self.password)

ftp.cwd(self.remote_path)

ftp.storbinary("STOR " + "myfilename.json", string_io )

奖金

我在ftplib中需要此文件,但对于SFTP在Paramiko中也将需要它.如果还有其他更好的库,我会开放.

如果我需要压缩文件怎么办?我可以压缩每个块并一次发送压缩块吗?

python截图直接在内存里调用_Python-按块上传FTP中的内存文件(由API调用生...相关推荐

  1. python selenium 文件上传_Python+Selenium学习--上传文件

    场景 文件上传操作也比较常见功能之一,上传功能操作webdriver 并没有提供对应的方法,关键上传文件的思路. 上传过程一般要打开一个系统的window 窗口,从窗口选择本地文件添加.所以,一般会卡 ...

  2. python 自动点击上传以后上传文件,python使用selenium模拟点击网页实现自动导入上传文件功能...

    一.环境准备 Python版本:3.4 编辑器:Pycharm excel文件:导入的excel模板 二.python代码 由于工作需要,需要每天定时导入相关excel文件进入后台数据库,由于导入的逻 ...

  3. 在网页中调用摄像头实现拍照上传 - 高拍仪二次开发

    在网页中调用摄像头实现拍照上传 高拍仪二次开发     在一些公共部门的办事处,比如银行.护照办理中心.税务等,我们可能会注意到办公桌上摆着这样一台机器.办公人员用它拍摄各种证件.文件.表格,有时候还 ...

  4. c++ 二次开发 良田高拍仪_在网页中调用摄像头实现拍照上传 - 高拍仪二次开发...

    来源于  https://blog.csdn.net/weixin_40659738/article/details/78252562 在网页中调用摄像头实现拍照上传 高拍仪二次开发 在一些公共部门的 ...

  5. python运维实战--跨堡垒机连接二级服务器上传文件

    python运维实战--跨堡垒机连接二级服务器上传文件 paramiko的有关概念和操作 Welcome to Paramiko! - Paramiko documentation 这个python脚 ...

  6. android之调用webservice实现图片上传

    http://www.cnblogs.com/top5/archive/2012/02/16/2354517.html 最近boss要求做android客户端的图片上传和下载,就是调用服务器的webs ...

  7. php微信获取mediaid超出限制_微信永久素材上传视频并通过mediaid获取微信url调用视频...

    今天解决一个调用微信永久素材上传视频的问题,在网上查了很久,上传视频的接口写的都不一样而且到处复制,感觉很乱,于是在做完case之后做了一个整理,希望能够帮助到你们. 涉及到如何调用微信永久素材上传视 ...

  8. 微信公众号开发《四》调用微信JS-SDK实现上传手机图片到服务器

    在这粘贴上三篇博文链接,方便大家查阅互相学习: 微信公众号开发<一>OAuth2.0网页授权认证获取用户的详细信息,实现自动登陆 微信公众号开发<二>发送模板消息实现消息业务实 ...

  9. java实现MinIO文件上传,并将视频文件截图,将视频封面及视频通过MinIo上传到服务器中

    java实现MinIO文件上传,并将视频文件截图,将视频封面及视频通过MinIo上传到服务器中 配置完毕,接下来开始代码编写. 说明 总过程分为两步. 1.配置MinIO的环境. 2.代码编写. 下面 ...

最新文章

  1. C# xml通过xslt转换为html输出
  2. 【深度学习下一大突破】吴恩达对话 Hinton、Bengio、Goodfellow(视频)
  3. MIT 研究员开发不会泄露数据的安全平台
  4. 一文看懂集群、分布式与负载均衡的关系
  5. CSS3笔记之基础篇(三)文字与字体
  6. Android自定义属性动画
  7. Jenkins 2.322 安装 自定义插件
  8. js-权威指南学习笔记4
  9. ubuntu下配置nginx支持phpt(unix:/var/run/php5-fpm.sock failed (2: No such file or directory) )
  10. 软件研发软件基础设施的建设
  11. STM32-FSMC外扩内存SRAM
  12. halcon 缺陷检测 表面凸点检测
  13. 论文邮箱不是导师的_我的漫漫读研路,就是导师对我的套路
  14. python 两幅图片融合成一张图片
  15. 网上说的白帽子黑帽子都是什么?
  16. visdom image显示图像(四)
  17. 炉石传说外 挂记(序)
  18. 以太坊钱包开发-下载、编译 go-ethereum,搭建 eth 私有链
  19. Android L添加kk版的OOBE开机向导
  20. 自动控制原理8.1---非线性控制系统概述

热门文章

  1. ERROR! The server quit without updating PID file (/usr/local/var/mysql/apple,卸载,重装一个,我的方案
  2. php imagerotate png,php imagerotate,rotate image,rotateimage opencv
  3. mysql 两张大表关联_MySQL的DropTable影响分析和最佳实践
  4. python变量赋值方式_python变量和变量赋值的几种形式
  5. 没信号也不怕?iPhone 14或将支持卫星网络连接呼救
  6. 特斯拉得克萨斯超级工厂正式开业 计划明年开始生产电动皮卡
  7. iPhone 14 Pro或配备8GB内存:苹果史上开天辟地的升级
  8. 用5毛特效,让1000万人上瘾!这群乡村大妈,打了所有流量明星的脸
  9. 三星Galaxy Note系列年底停产:被折叠屏手机/Galaxy S系列取代
  10. 特斯拉电动皮卡量产时间还会推迟 内部人士称已被推迟到2023年