我正在将可能很大的文件上传到Web服务器.目前我这样做:
import urllib2
f = open('somelargefile.zip','rb')
request = urllib2.Request(url,f.read())
request.add_header("Content-Type", "application/zip")
response = urllib2.urlopen(request)
Run Code Online (Sandbox Code Playgroud)
但是,这会在发布之前将整个文件的内容读入内存.我怎样才能将文件流式传输到服务器?
我需要通过 HTTP 将大文件上传到远程服务器。我正在研究如何使用 multipart/form-data 发送数据。
我已经了解了HTTP 文件上传是如何工作的?并了解它如何使用边界分隔文件数据。
我想知道所有文件数据是一次性发送还是通过多个请求流式传输到远程服务器。
因为如果一次性发送,就不可能在远程服务器读取全部数据并将其写入文件。
但是如果是流式传输,远程服务器如何解析流式数据,将这些流式数据写入文件并重做相同的事情,直到所有数据都流式传输。
对不起,如果这是一个菜鸟问题,我也在研究它。
也许它不在 multipart/form-data 的范围内,而 HTTP 本身正在处理。
任何帮助表示赞赏。