【问题标题】:Post Large File Using requests_toolbelt to vk使用 requests_toolbelt 将大文件发布到 vk
【发布时间】:2018-12-02 07:15:20
【问题描述】:

我是 python 新手,我编写了用于将视频从 url 上传到 vk 的简单脚本,我用小文件测试这个脚本它正在工作,但是对于大文件我内存不足,我读到使用 'requests_toolbelt' 它是可以发布大文件,如何将其添加到我的脚本中?

进口vk
导入请求
从 homura 导入下载
导入全局
导入操作系统
导入json


url=raw_input("请输入网址:")
下载(网址)

文件名 = 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'}
参数 = vkapi.video.save(**参数)
upload_url = 参数['upload_url']

print ("上传中...")
request = requests.post(upload_url, files={'video_file': open(file_name, "rb")})

os.remove(文件名)

【问题讨论】:

  • 请发布错误和回溯。
  • 运行脚本时,下载后,上传时显示'killed'并关闭脚本,对于小文件我没有收到此错误。

标签: python post python-requests vk


【解决方案1】:

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")})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-11
    • 2012-06-23
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 2018-08-10
    相关资源
    最近更新 更多