0

是否有可能使用 python 上传真正的大数据?

例如要上传 100GB,我可以使用 requests 模块,例如:

with open('really_big_file') as f:
    requests.post('http://some.url/streamed', data=f)

我没有任何文件的问题。我需要生成一些随机数据并将其上传到服务器。像这样的东西:

while uploaded_size < required_size:
    data = ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(1000))
    requests.post('http://some.url/chunk', data)
    uploaded_size += 1000

这段代码的问题是它会上传许多小文件,而我需要上传一个大文件。我也尝试使用函数生成数据:

def gen():
    while uploaded_size < required_size:
        data = ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(1000))
        uploaded_size += 1000
        yield data
requests.post('http://some.url/chunked', data=gen())

这个变种会抛出错误:Broken pipe

如果您能说出我的错误在哪里或我应该尝试什么模块,我将不胜感激。

UPD:通过套接字解决

4

1 回答 1

0
requests.post('http://some.url/chunked', data=''.join(gen()))

gen()返回一个迭代器。您应该对其进行迭代以获取值。

于 2013-05-27T21:30:49.363 回答