SpiderOak我一直在用這個Zipstream模塊瞎掰,它基本上允許你在不寫任何內容的情況下對文件或文件夾進行流和壓縮。它產生大小不規則的數據。用於python請求的多部分表單數據生成器
現在,我試圖上傳一個目錄到一個文件託管網站,要求我發送file
和apikey
字段內的發佈請求。隨着要求我必須建立一個字典的apikey像這樣:
,並讀取整個zipstream成字符串,並將其傳遞到文件編碼字典:
files = {'file': ('mydir.zip', the_string_that_is_a_zipped_dir)}
然後發出要求
r = requests.post(url, data=data, files=files).
這工作正常。不過,我希望將來能夠傳輸更大的內容,並且從內存中讀取整個文件是一個糟糕的主意。 我看到請求的高級部分,你可以發送一個生成器作爲數據字段,但然後我不能發送api鍵,並且必須手動修改標題以設置內容類型和所有這些東西,所以它不起作用。還試圖以形成一個字典出API密鑰和zip文件發生器的像這樣 數據= { '文件':( 'mydir.zip',發電機()), 'apikey': 'myapikey' }
但這失敗(如預期)。
有沒有一種方法可以將請求轉化爲使用一個爲多部分表單數據中的文件生成字符串的生成器?