烧瓶文件下载并上传到Google驱动器

时间:2019-01-07 23:13:39

标签: flask google-drive-api

我正在尝试使用flask设置文件上传,然后将文件传输到Google驱动器。

大多数情况下都可以使用,但是使用flask上传文件后,偶尔会转移到Google驱动器。该问题仅在较大的文件中发生,而不是每次都发生。

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

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

Google API Client Libraries (Python) - Media Upload文档的“可恢复媒体(分块上传)”部分

  

对于大的媒体文件,您可以使用可恢复的媒体上传来发送文件,这允许以较小的块上传文件。如果您要传输大文件,并且网络中断或其他传输失败的可能性很高,则此功能特别有用。在网络出现故障的情况下,它也可以减少带宽使用,因为您不必从头开始重新启动大文件上传。

它暗示了这种方法

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!"