python - 如何编写上传大于 RAM 的文件的 Python 代码?
问题描述
我有一个 1 GB ram 的 vps,我想通过 curl 和 python 发送一个大文件(2GB)。
python给出MemoryLimit
错误但curl
发送文件没有问题并且使用非常低的内存。
卷曲是如何做到的?
我如何在使用低内存的 Http 发布请求中发送一个非常大的文件?
解决方案
您可能已将所有文件数据加载到内存中,然后尝试发送。这显然会导致 MemoryLimit 错误。
您可以尝试使用mmap
模块。示例代码如下:
import requests
import mmap
with open("hello.txt", "r+b") as f:
# memory-map the file, size 0 means whole file
mm = mmap.mmap(f.fileno(), 0)
r = requests.post(URL, data=mm)
print(r.status_code, r.reason)
mm.close()
推荐阅读
- c++ - 如何在不从文件中读取图像的情况下显示 Mat 图像
- c# - 如何在asp.net c#中调用Javascript函数并传递参数?
- r - 使用 StepAIC 后从模型中提取公式
- ios - 无法在 Swift 中更改 backBarButtonItem
- python - ML 模型在测试服务器上运行,但不在生产服务器上
- c - 关于空闲函数和内存分配的问题(C)
- android - 边框 BottonAppBar 颤动
- regex - 使用 htaccess 从 url 中删除单词
- python - 在 python 中使用 urllib 解析谷歌搜索结果时出错
- c# - 无法搭建控制器 - 使用了命名连接字符串,但在应用程序配置中找不到名称 DefaultConnection