簡體   English   中英

Python請求上傳文件-413請求實體太大

[英]Python request upload file - 413 request entity too large

我具有以下腳本,該腳本允許我將文件上傳到bestream.tv。 這不適用於95MB以上的文件。 會有什么改變?

import requests
import re

sessionObj = requests.session()
sessionObj.post('http://bestream.tv/login.html', data={'loginUsername':'my_user', 'loginPassword':'my_pass', 'submitme':'1'})
filehandle = open('Diabolik Lovers - 12.mp4', 'rb')

resp = sessionObj.get('http://bestream.tv/account_home.html')

url_form = re.search('url: \'(http:\/\/.*)?\'', resp.text).group(1)
sessionid = re.search('_sessionid:\s\'(.*)?\', cTracker:', resp.text).group(1)
ctracker = re.search('cTracker:\s\'(.*)?\', maxChun', resp.text).group(1)

r = sessionObj.post(url_form, data={'_sessionid':sessionid, 'folderId':'', \
                    'cTracker':ctracker, 'maxChunkSize':'100000000'}, files={'files[]':(filehandle.name, filehandle)})

print(r.text)

結果如下:

413 Request Entity Too Largue

要從網絡上傳文件,我在chrome-> Network中得到以下結果:

Accept:application/json, text/javascript, */*; q=0.01
Content-Disposition:attachment; filename="Diabolik%20Lovers%20-%206.5.mp4"
Content-Range:bytes 0-99999999/168152948
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryHNdI5JvVzIVROkWQ
Origin:http://bestream.tv
Referer:http://bestream.tv/account_home.html
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36


Accept:application/json, text/javascript, */*; q=0.01
Content-Disposition:attachment; filename="Diabolik%20Lovers%20-%206.5.mp4"
Content-Range:bytes 100000000-168152947/168152948
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryfsXuVqiBMXo1Vtn7
Origin:http://bestream.tv
Referer:http://bestream.tv/account_home.html
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36

以此類推,直到完成上傳文件。

所以我暗示它每100000000字節在增加。 我應該怎么修改我的腳本來做同樣的事情?

您收到的錯誤是Web服務器告訴您的方法,實際上您不能上傳較大的文件。 服務器接受的請求量取決於服務器管理員,而不是以任何方式控制客戶端(您的代碼)。

我假設是因為requests的文檔沒有明確指出:使用maxChunkSize發布將允許“分塊” HTTP傳輸(另請參見: http : //en.wikipedia.org/wiki/Chunked_transfer_encoding ),這仍然使文件大小保持不變,因為分塊位於另一個抽象層上。

恐怕您必須自己對文件進行切片並逐個發布。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM