相关疑难解决方法(0)

Python请求发布的进展

我正在使用Python请求包上传一个大文件,我找不到任何方式来提供有关上传进度的数据.我已经看到了许多用于下载文件的进度表,但是这些对于文件上传不起作用.

理想的解决方案是某种回调方法,例如:

def progress(percent):
  print percent
r = requests.post(URL, files={'f':hugeFileHandle}, callback=progress)
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助 :)

python python-requests

12
推荐指数
5
解决办法
2万
查看次数

带有生成器的WSGI文件流

我有以下代码:

def application(env, start_response):
    path = process(env)
    fh = open(path,'r')
    start_response('200 OK', [('Content-Type','application/octet-stream')])
    return fbuffer(fh,10000)


def fbuffer(f, chunk_size):
    '''Generator to buffer file chunks'''  
    while True:
        chunk = f.read(chunk_size)      
        if not chunk: break
        yield chunk
Run Code Online (Sandbox Code Playgroud)

我不确定它是对的,但是我在互联网上找到的信息碎片让我觉得它应该有效.基本上我想以块的形式流出一个文件,为此,我从我的应用程序函数传回一个生成器.然而,这只打印出标题,并没有实际发回任何数据,任何人都可以告诉我为什么这是?

或者,如果这是完全错误的,那么最好的方法是什么?我无法将整个文件缓冲在内存中,因为我将使用的文件可能是千兆字节.

第三个问题:一旦我输出文件,关闭文件的最佳方法是什么?在我发布的代码中,无论如何我都看不到实际关闭文件.

(我用uWSGI 1.2.4运行python 3.2.3)

python wsgi large-files

4
推荐指数
1
解决办法
3450
查看次数

在Python中通过HTTP从客户端到服务器流式传输未知大小的数据

不幸的是,我之前的问题因为是一个问题的"精确副本"而被关闭,而它绝对不是,特此再次.

它不是Python的重复:HTTP发布带有流的大文件

那个处理流式传输大文件; 我想将一个文件的任意块一个接一个地发送到同一个http连接.所以我有一个20 MB的文件,我想要做的是打开HTTP连接,然后发送1 MB,再发送1 MB等,直到它完成.使用相同的连接,服务器看到该连接上出现一个20 MB的块.

我也打算做一个Mmapping文件,但是当从stdin读取数据时这不起作用.主要针对第二种情况,我正在寻找这种逐个数据馈送.

老实说,我想知道它是否可以完成 - 如果没有,我想知道,那么可以关闭这个问题.但如果可以做到,怎么办呢?

python upload http

4
推荐指数
1
解决办法
6158
查看次数

如何在Python中通过HTTPPost方法发送大文件,上传大文件

我想通过 Python 中的 HTTPPost 方法发布巨大的 .ova 文件

**ResponseHeaders**
Pragma  no-cache
Date    Thu, 18 Jul 2013 11:17:13 GMT
Content-Encoding    gzip
Vary    Accept-Encoding
Server  Apache-Coyote/1.1
Transfer-Encoding   chunked
Content-Language    en-US
Content-Type    application/json;charset=UTF-8
Cache-Control   no-cache, no-store, max-age=0
Expires Thu, 01 Jan 1970 00:00:00 GMT
**RequestHeaders**
Content-Type    application/json
Accept  application/json
xyzAPIVersion   1.0
X-Requested-With    XMLHttpRequest 
Run Code Online (Sandbox Code Playgroud)

如何通过 REST API 通过 HTTPPost 方法发送如此巨大的文件(500 MB)。

python streaming post file-upload http

2
推荐指数
1
解决办法
2562
查看次数

大文件上传失败

我正在编写一个python模块将POST文件发送到服务器,我可以上传大小高达500MB的文件但是当我尝试上传1gb文件时上传失败,如果我使用类似cURL的东西它赢了不要失败.我在google搜索如何multipart formdata使用python 上传后得到了代码,代码可以在这里找到.我刚编译并运行该代码,我得到的错误就是这个

Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    opener.open("http://127.0.0.1/test_server/upload",params)
  File "C:\Python27\lib\urllib2.py", line 392, in open
    req = meth(req)
  File "C:\Python27\MultipartPostHandler.py", line 35, in http_request
    boundary, data = self.multipart_encode(v_vars, v_files)
  File "C:\Python27\MultipartPostHandler.py", line 63, in multipart_encode
    buffer += '\r\n' + fd.read() + '\r\n'  
MemoryError
Run Code Online (Sandbox Code Playgroud)

我是python的新手并且很难掌握它.我还碰到另一个程序在这里,我会说实话,我不知道该怎么办好了.我尝试通过基于函数名称的猜测来运行它,但这不起作用.

python post file-upload multipartform-data

1
推荐指数
1
解决办法
2583
查看次数