gpt4 book ai didi

python - 访问临时内存中用户上传的视频时出现问题

转载 作者:行者123 更新时间:2023-11-30 23:51:16 25 4
gpt4 key购买 nike

我正在尝试使用 html 输入类型 file 和 python 模块 youtube-upload 将用户上传的视频提交到 youtube。提交表单后,处理方式如下:

if request.method == 'POST':
video = request.FILES['file']

v=str(video)

command = 'youtube-upload --email=email@gmail.com --password=password --title=title --description=description --category=Sports ' + v

r = subprocess.Popen(command, stdout=subprocess.PIPE)
v = r.stdout.read()

所以我认为问题是我需要为视频提供更完整的路径。如果是这样的话,访问临时内存中视频的路径是什么。

该命令的通用形式是:youtube-upload --email=电子邮件 --password=密码 --title=标题 --description=描述 --category=类别 video.avi

或者,我专门查看了 youtube api here但如果有人能够提供更完整的解释,说明如何使用 api 在 python 中执行此操作,那就太棒了。不幸的是,网站上的指南只关注 xml。

编辑 sacabuche 的评论:

所以我现在的看法大致是:

def upload_video(request):
if request.method == 'POST':
video = request.FILE['file']
v = video.temporary_file_path
command = 'youtube-upload --email=email@gmail.com --password=password --title=title --description=description --category=Sports ' + v

r=subprocess.Popen(command, stdout=subprocess.PIPE)

vid = r.stdout.read()
else:
form = VideoForm()
request.upload_handlers.pop(0)
return render_to_response('create_check.html', RequestContext(request, locals() ) )

但是v=video.temporary_file_path绘制错误'InMemoryUploadedFile'对象没有属性'temporary_file_path'。因此视频仍然在临时内存中,我不知道应该调用哪个对象 temporary_file_path 或如何获取该对象。

最佳答案

事实上 django 将文件保存在内存中,但是大文件保存在路径中。
可以使用FILE_UPLOAD_MAX_MEMORY_SIZE在设置中定义“大文件”的大小

默认情况下,FILE_UPLOAD_HANDLERS 为:

("django.core.files.uploadhandler.MemoryFileUploadHandler",
"django.core.files.uploadhandler.TemporaryFileUploadHandler",)

这给了我们两种可能性:

1。删除内存处理程序

删除..MemoryFileUploadHandler,但所有文件都将保存在临时文件中,这并不酷

2。动态修改处理程序

docs here

#views.py

def video_upload(request):
# this removes the first handler (MemoryFile....)
request.upload_handlers.pop(0)
return _video_upload(request)

def _video_upload(request):
....

要获取文件路径,您只需执行 video.temporary_file_path

关于python - 访问临时内存中用户上传的视频时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6906935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com