更新代码:Python - 因为我可以将文件上传到服务器的几个部分?
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)
tam=os.path.getsize('Diabolik Lovers - 12.mp4')
headers={}
n=0
stop=0
while stop < tam:
start = n*100000000
stop = min(start+99999999, tam)
contentrange = 'bytes {}-{}/{}'.format(start, stop, tam)
headers['Content-Range'] = contentrange
filehandle.seek(start)
r = sessionObj.post(url_form, headers=headers, files = {'files[]': (filehandle.name, filehandle)})
n+=1
print(r.text)
给出的答案是:
[{"name":"Diabolik Lovers - 6.5.mp4","size":68152948,"type":"","error":null}]
当上传从网上的文件,我在Chrome中获得这样的结果 - >网络:
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字节的文件,怎么可能修改代码呢?
您可以明确地制作范围请求并上传一段时间,但您必须手动完成。但你为什么想要?如果您只想(a)上传流媒体,并且可能(b)恢复中断上传,请提问。 – abarnert
我如何明确制作范围请求并上传一段时间?服务器可以上传高达100000000字节的文件。从网站我可以上升到2GB,但我需要制作一个脚本来上传像网络一样工作的文件。 – Marco
'请求'并没有真正的帮助你。您必须了解HTTP Content-Range规范,以及您的特定服务器如何处理它,然后编写标题并手动拆分文件。 – abarnert