We’re Still Here to Help (Even Over the Holidays!) - find out more here.
Forum Discussion
C. Logan
9 years agoExplorer | Level 3
Uploading big file using Objective-C API V2 very SLOW...
Hello,
recently our app updates the Dropbox related code from API V1 to API V2. Usually we need to transfer files to Dropbox, it is OK for small files, but for video files of size about 1.5 GB the progress is very slow, and often the upload is stopped due to request timeout....
We use the following API calls:
1. Start the upload
[client.filesRoutes uploadSessionStartData:data];
2. Repeatedly upload new chunk of data
[client.filesRoutes uploadSessionAppendV2Data:cursor inputData:chunk];
3. Finish upload for the last chunk
[client.filesRoutes uploadSessionFinishData:cursor commit:info inputData:chunk];
And the log messages are as follows:
2017-01-20 14:25:11.336692 MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0000
2017-01-20 14:25:11.343177MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0000
2017-01-20 14:25:11.349521MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0001
2017-01-20 14:25:11.353344MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0001
// Skip...
2017-01-20 14:25:55.059215MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0003
2017-01-20 14:25:55.070222MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0003
2017-01-20 14:26:17.700571MyApp[19184:6471639] start: bytesWritten = 65536 progress = 0.0003
2017-01-20 14:26:17.704239MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0003
2017-01-20 14:26:34.987083MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0004
2017-01-20 14:26:34.992280MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0004
2017-01-20 14:26:35.005880MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0004
// No data downloaded for about 23 sec
2017-01-20 14:26:58.848907MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0004
2017-01-20 14:26:58.855699MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0004
2017-01-20 14:26:58.871372MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0005
2017-01-20 14:26:58.873328MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0005
2017-01-20 14:27:15.431969MyApp[19184:6471639] start: bytesWritten = 65536 progress = 0.0005
2017-01-20 14:27:15.436307MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0006
2017-01-20 14:27:44.313052MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0006
2017-01-20 14:27:44.318937MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0006
2017-01-20 14:27:44.323024MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0006
2017-01-20 14:27:44.327415MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0006
2017-01-20 14:28:10.012220MyApp[19184:6471639] start: bytesWritten = 65536 progress = 0.0007
2017-01-20 14:28:10.015194 MyApp[19184:6471639] start: bytesWritten = 32768 progress = 0.0007
// Skip...
2017-01-20 14:59:18.994143 MyApp[19184:6471639] __70-[....]_block_invoke [Line 92] start: requestError = DropboxClientError[{
NSError = "Error Domain=NSURLErrorDomain Code=-1001 \"\U8981\U6c42\U903e\U6642\U3002\" UserInfo={NSUnderlyingError=0x17025bb70 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 \"(null)\" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=https://api-content.dropbox.com/2/files/upload_session/start, NSErrorFailingURLKey=https://api-content.dropbox.com/2/files/upload_session/start, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=\U8981\U6c42\U903e\U6642\U3002}";
}];
2017-01-20 14:59:18.994833 MyApp[19184:6471639] __74-[...]_block_invoke_2 [Line 428] Failed To Upload /Horrible.Bosses.2011.DVDRip.XVID.AC3.HQ.Hive-CM8.avi
Error = DBRequestErrorClient
2017-01-20 14:59:18.995478 MyApp[19184:6475977] [] __tcp_connection_write_eof_block_invoke Write close callback received error: [89] Operation canceled
It can be seen from the log messages that the time the data arrived is not very smooth, and finally the operation is canceld.
My questions:
Is it pure network traffic problem?(Our network is relatively fast.)
Or is there something in API V2's upload API that causes the upload so slow?
Thanks for your attention.
Best regards,
Logan
22 Replies
Replies have been turned off for this discussion
- DS68 years agoExplorer | Level 4Also, many a times upload simply hangs without throwing any error. Setting large block size to 100 MB causes such problems more often.
- Greg-DB8 years ago
Dropbox Community Moderator
DS6 Please open a new thread with the details of your issue, e.g., the relevant code, etc. so we can help you specifically without spamming the other people on this old thread. Thanks!
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
The Dropbox Community team is active from Monday to Friday. We try to respond to you as soon as we can, usually within 2 hours.
If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X, Facebook or Instagram.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!