我是python的新手,我编写了用于将视频从url上传到vk的简单脚本,我使用了可以正常工作的小文件测试了此脚本,但是对于大文件,我的内存不足了,我读到了使用'requests_toolbelt'的意思可以发布大文件,如何将其添加到脚本中?
import vk import requests from homura import download import glob import os import json url=raw_input("Enter URL: ") download(url) file_name = glob.glob('*.mp4')[0] session = vk.Session(access_token='TOKEN') vkapi = vk.API(session,v='5.80' ) params={'name' : file_name,'privacy_view' : 'nobody', 'privacy_comment' : 'nobody'} param = vkapi.video.save(**params) upload_url = param['upload_url'] print ("Uploading ...") request = requests.post(upload_url, files={'video_file': open(file_name, "rb")}) os.remove (file_name)
答案 0 :(得分:0)
requests_toolbelt(https://github.com/requests/toolbelt)只是适合您的示例:
import requests
from requests_toolbelt import MultipartEncoder
...
...
m=MultipartEncoder( fields={'video_file':(file_name, open(file_name, "rb"))})
response = requests.post(upload_url, data=m, headers={'Content-Type': m.content_type})
如果您知道视频文件的MIME类型,则可以将其作为()元组中的第三项添加,如下所示:
m=MultipartEncoder( fields={
'video_file':(file_name, open(file_name,"rb"), "video/mp4")})