0

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

1 つの大きなファイルをアップロードする必要があるのに、多くの小さなファイルをアップロードするというこのコードの問題。また、関数でデータを生成しようとしました:

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 に答える