当前位置: 首页 > 知识库问答 >
问题:

使用requests\u toolbelt将大文件发布到vk

鲜于高明
2023-03-14

我是python新手,我编写了从url上传视频到vk的简单脚本,我用小文件测试了这个脚本,但对于内存不足的大文件,我读到使用“requests\u 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)

共有1个答案

严宇
2023-03-14

requests\u工具带(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")})
 类似资料:
  • 问题内容: 我试图在此处修改@BalusC优秀教程,以发送gzip压缩文件。这是一个有效的java类: 您必须编辑和字段,并在URL中设置一个servlet-其方法是: 现在,当field设置为true时,FILENAME会被正确压缩并发送到服务器,但是当我尝试将其提取时,它已损坏(我在Windows上使用7z,它将打开gzip文件作为存档,但是当我尝试将文件提取到 内部时 , gzip归档文件说

  • 问题内容: 我试图在此处修改@BalusC优秀教程,以发送gzip压缩文件。这是一个有效的java类: 您必须编辑和字段,并在URL中设置一个servlet-其方法是: 现在,当field设置为true时,FILENAME会被正确压缩并发送到服务器,但是当我尝试将其提取时,它已损坏(我在Windows上使用7z,它将打开gzip文件作为存档,但是当我尝试将文件提取到 内部时 , gzip归档文件说

  • 我正在尝试在 Jenkins 中配置以下工作流模式: 构建战争文件 我似乎错过了一些东西。应用程序的组件(jar 文件等)似乎在目标版本/快照目录中很好地部署到 Artifactory 中。然而,最终的WAR神器似乎并没有存储在Artifactory中,尽管Jenkins清楚地指出该神器是成功构建的。 我使用的是标准目标:全新安装。我也尝试过(没有改变):全新安装重新打包 我安装了Jenkins的

  • 我有一个名为fake的文件。我的angular应用程序中的json内部资源。此文件的路径如下所示。 MyApp= 我想使用我的组件中的HttpClient(位于应用程序文件夹内)对此文件发出请求。 MyApp= 组件源代码 我发生了以下错误 的HttpErrorResponse Http故障响应http://localhost:4200/assets/json/fake.json:404找不到 我

  • 我试图用java spring创建一个接受csv文件的restendpoint。 我的控制器如下所示: 将-vv选项添加到curl调用中会导致以下输出:

  • 问题内容: 最终用户应该通过文件浏览器上传excel文件: 动作: 服务内容: 该文件应发送到使用Spring Boot接受的多部分文件构建的POST REST端点。端点无法识别这样发送文件 如何发布Excel文件? 编辑:我现在正在尝试发布文件列表: 但是data.append(’file’,files [i]); 总是返回未定义的 问题答案: 通过表单将文件传递到后端。 如果您现在检查发送到后