【问题标题】:flask file download and upload to google drive烧瓶文件下载并上传到谷歌驱动器
【发布时间】:2019-01-07 23:13:38
【问题描述】:

我正在尝试使用烧瓶设置文件上传,然后将文件传输到谷歌驱动器。

它大部分时间都可以工作,但有时在使用烧瓶上传文件后,传输到谷歌驱动器会挂起。该问题仅发生在较大的文件中,而不是每次都发生。

        filename = secure_filename(file.filename)
        filename=str(time.time()).replace('.','_')+'_____' + filename
        file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))


        file_metadata = {'name': displayName,
                     'parents': [foldertID] }

        media = MediaFileUpload('/var/flocation/' + filename)


        Gfile = service.files().create(body=file_metadata,
                                        media_body=media,
                                        fields='id').execute()
        fileID=Gfile.get('id')

        os.remove(os.path.join(app.config['UPLOAD_FOLDER'], filename))

在开始传输到护目镜驱动器之前文件没有完全上传是否存在问题?没有错误消息,它只是挂起。如果我重新提交上传请求,通常可以解决问题。

感谢您的帮助。

【问题讨论】:

  • 您是否检查并尝试过此SO post 的解决方案?您也可以查看类似的SO post 了解更多信息。
  • 看起来同样的问题,但我没有使用谷歌应用引擎。我正在使用 ec2 获取谷歌文档。我无权访问 Blob 存储。

标签: flask google-drive-api


【解决方案1】:

来自Google API Client Libraries (Python) - Media Upload Docs 的可恢复媒体(分块上传)部分

对于大型媒体文件,您可以使用可恢复媒体上传来发送文件,这允许文件以较小的块上传。如果您正在传输大文件,并且网络中断或其他一些传输失败的可能性很高,这尤其有用。它还可以在发生网络故障时减少您的带宽使用,因为您不必从头开始重新启动大文件上传。

它建议了这种方法

media = MediaFileUpload('pig.png', mimetype='image/png', resumable=True)
request = farm.animals().insert(media_body=media, body={'name': 'Pig'})
response = None
while response is None:
  status, response = request.next_chunk()
  if status:
    print "Uploaded %d%%." % int(status.progress() * 100)
print "Upload Complete!"

【讨论】:

  • 我是否必须使用分块上传将文件最初传输到运行烧瓶应用程序的服务器?我在下面收到以下错误消息。第 346 行,在 upload_file fields='id').execute() 文件“/usr/lib/python2.7/httplib.py”,第 1123 行,在 getresponse 中引发 ResponseNotReady()
  • 可能。在开始 GDrive 上传过程之前,您可能还需要检查文件是否已完全上传。这可能会帮助stackoverflow.com/a/21746775/6685140
  • 解决了。我最初使用分块上传将文件传输到我的烧瓶服务器,并且我不再收到任何错误上传到谷歌驱动器。
猜你喜欢
  • 2020-08-03
  • 2018-07-21
  • 1970-01-01
  • 1970-01-01
  • 2015-07-19
  • 1970-01-01
  • 2019-08-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多