是否有可能使用python上传真正的大数据?
例如,要上传100GB,我可以使用请求模块,如:
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())
此变体将抛出错误:管道损坏
如果你能说出我的错误或我应该尝试的模块,我将非常感激。
UPD:已解决使用套接字
答案 0 :(得分:0)
requests.post('http://some.url/chunked', data=''.join(gen()))
gen()
返回一个迭代器。你应该迭代它以获得值。