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

将大型视频文件上传到Google App Engine

孔理
2023-03-14

我正在尝试通过谷歌应用引擎将一个大视频上传到谷歌云存储中。

我遵循了这篇文章中的原则,这篇文章提到了上传一个大的电子表格。在GCP应用引擎中无法将大文件上传到Python+Flask

这是我的后端代码


    from flask import Flask, render_template, request, redirect, url_for
    from google.cloud import storage
    from flask_dropzone import Dropzone
    from werkzeug.utils import secure_filename
    import os
    import base64


    app = Flask(__name__, template_folder='./templates', static_folder="./static")
    dropzone = Dropzone(app)
    app.config['UPLOAD_PATH'] = '/tmp'

    @app.route('/', methods=['GET', 'POST'])

    def index():
        return render_template('index.html')


    @app.route('/upload', methods=['POST', 'GET'])
    def upload():

        if request.method == 'POST':

        upload_file = request.files.get('file')

        tmp_file_path = '/tmp/' + upload_file.filename

        with open(tmp_file_path, 'a') as f:
            f.write(uploaded_file.read())

        chunk_index = int(flask.request.form.get('dzchunkindex')) if 
(flask.request.form.get('dzchunkindex') is not None)  else 0
    
        chunk_count = int(flask.request.form.get('dztotalchunkcount')) if (flask.request.form.get('dztotalchunkcount') is not None)  else 1


        if (chunk_index == (chunk_count - 1)):
            print('Saving file to storage')
            print( chunk_count )

            storage_client = storage.Client()

            storage_bucket = storage_client.get_bucket('percy-277618.appspot.com')

            blob = storage_bucket.blob(upload_file.filename)

            blob.upload_from_filename(tmp_file_path, client=storage_client)
            print('Saved to Storage')

            print('Deleting temp file')
            os.remove(tmp_file_path)

                  

if __name__ == '__main__':

    app.run(host='127.0.0.1', port=8080, debug=True)

这是我的前端代码






Dropzone.options.uploadwidget = {

       paramName: 'file',
       forceChunking: true,
       timeout: 300000,
       chunking: true,
       url: '/upload',
       chunkSize: 10485760,
       maxFilesize: 1025,

};


共有1个答案

袁枫涟
2023-03-14

使用uploaded_file.read()生成的是字节,而不是字符串。您应该以二进制模式打开文件:

with open(tmp_file_path, 'ab') as f:
 类似资料:
  • 对不起我的英语。我试着在服务器上上传大的视频文件,这个文件超过50 MB。当我上传小文件时,一切都很好。在清单中,我设置了和,这对我没有帮助。下面是我的代码: 接口 方法返回文件: 服务器上的方法上载 错误: 抛出OutOfMemoryError“分配100390006字节分配失败,16777216空闲字节和92MB直到OOM” 全stacktrace

  • 我试图使用API接口将视频上传到S3存储桶,我遵循了预签名的URL过程,下面是我的lambda函数,它返回预签名的URL(它正确地返回了预签名的URL,看起来): 当我尝试上传一个像这样卷曲的mp4视频时,例如: curl-X PUT-F'data=@ch01_00000100055009702.mp4'https://redacted-bucket-instance.s3.amazonaws.c

  • 我已经尝试上传大型视频到服务器使用Restful API的帮助下改型。但是每次我都无法通过这个场景上传它。这对100 MBs左右的小视频很好,但它不符合大于300 MBs的条件。 向服务器上传非常大的文件需要什么?Ans:我正在创建像(网飞,亚马逊Prime等)的网络系列播放应用程序,也有一个管理员的角色。管理员可以通过手机上传web系列,其大小可能非常大,大约在400 MB到1 GB之间。 请提

  • 问题内容: 是的,这是一个冗长的问题,涉及很多细节… 所以,我的问题是:如何将分段上传到Vimeo? 对于想要在自己的计算机上进行复制和调试的任何人: 这是您需要的东西: 我的代码在这里。 包括在此处找到的抄写员库 拥有至少大于10 MB的有效视频文件(mp4),并将其放在目录中,或更改该代码以指向您所在的位置。 而已!谢谢你的协助! 重大更新: 我在此处的代码中为Vimeo保留了有效的API密钥

  • 本文向大家介绍ASP.NET webUploader上传大视频文件相关web.config配置,包括了ASP.NET webUploader上传大视频文件相关web.config配置的使用技巧和注意事项,需要的朋友参考一下 在webuploader上传大文件时必须配置一下,不然请求后台处理程序时,会请求超时。出现404! 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,

  • 接口说明 上传视频文件 API地址 POST /api/marker/1.0.0/uploadVideo 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 dataGuid string form 是 场景GUID file string form 是 视频文件 响应字段说明 参数 类型 说明 mp4UploadPath String 视频文件上传地址 响应成功示例 { "