Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

upload chunks using dropbox api

I am using the dropbox API to upload files in chunk. But the following code gets stuck at uploader.upload_chunked(). What might be the reason?

Also, is there any way to know what is happening in the background like uploaded these many chunks, still uploading, time taken to receive the uploaded chunks and other information ? Can threads be used to upload these chunks,assuming that the API takes measure to assemble the chunks in correct order,or is it that we have to take care of ordered assembling ?

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

Edit:
size = 941 -> The size of the file to upload
upload=uploader.upload_chunked(chunk_size=100) -> chunk_size changed from default to 100 bytes
print'100 bytes of chunk sent' -> print statement included

like image 997
Uddhav Arote Avatar asked Dec 23 '13 04:12

Uddhav Arote


2 Answers

I had the same issue, so I asked in dropbox's developer forum They suggest upload_chunk (member function of DropboxClient, not the one in ChunkedUploader) could suit our requirement

like image 123
YGLin Avatar answered Oct 31 '22 14:10

YGLin


upload_chunked uploads the entire file (one chunk at a time), so unless an error occurs, the above code should only reach the print statement once, after the file has been uploaded.

See https://www.dropbox.com/developers/core/docs/python#ChunkedUploader.upload_chunked for the documentation of upload_chunked.

like image 20
user94559 Avatar answered Oct 31 '22 16:10

user94559