使用dropbox api上传块

时间:2013-12-23 04:28:32

标签: python file-upload dropbox

我正在使用Dropbox API上传文件块。但是下面的代码卡在uploader.upload_chunked()上。可能是什么原因?

此外,有没有办法知道在后台发生了什么,比如上传了这么多块,还在上传,接收上传的块的时间和其他信息? 可以使用线程来上传这些块,假设API采取措施以正确的顺序组装块,或者我们是否需要处理有序的组装?

import dropbox
size = 941   
access_token = 'xxx'
client = dropbox.client.DropboxClient(access_token)
to_upload_file = open('dummy.txt','r')

uploader = client.get_chunked_uploader(to_upload_file,size)

print 'uploading ', size
while uploader.offset < size :
        try:
                upload = uploader.upload_chunked(chunk_size=100)  
                print '100 bytes of chunk sent.'
        except dropbox.rest.ErrorResponse,e:
                print 'something went wrong'      
uploader.finish('/dummy.txt')

修改
size = 941 - &gt;要上传的文件的大小
upload=uploader.upload_chunked(chunk_size=100) - &gt; chunk_size从默认更改为100个字节
print'100 bytes of chunk sent' - &gt;包括打印声明

2 个答案:

答案 0 :(得分:4)

我遇到了同样的问题,所以我在dropbox的developer forum中提问 他们建议upload_chunk(DropboxClient的成员函数,而不是ChunkedUploader中的成员函数)可以满足我们的要求

答案 1 :(得分:2)

upload_chunked上传整个文件(一次一个块),因此除非发生错误,否则上传代码只应在文件上传后一次到达print语句。

有关upload_chunked的文档,请参阅https://www.dropbox.com/developers/core/docs/python#ChunkedUploader.upload_chunked