cancel
Showing results for 
Search instead for 
Did you mean: 

API V2 analogue of canceFileLoad and cancelFileUpload

SOLVED
497 Views
7 Comments
0 Kudos
Highlighted
Level 4

API V2 analogue of canceFileLoad and cancelFileUpload

In my iOS app using Dropbox API V1 I cancel file uploads and downloads using code similar to this:

 

[self.restClient canceFileLoad:dBox.cloudURLDropbox];

 

What is the corressponding V2 method call ... I've spent some time looking throught the docs and for the life of me I cannot see what to do!

 

Thanks,

Steve

1 Accepted solution

Accepted Solutions
Solution
Dropboxer

Re: API V2 analogue of canceFileLoad and cancelFileUpload

You can save the task returned by the download/upload call, and then call cancel on it:

 

DBDownloadDataTask *downloadTask = [[client.filesRoutes downloadData:filePath] setResponseBlock:^(DBFILESFileMetadata *metadata, DBFILESDownloadError *downloadError, DBRequestError *error, NSData *fileData) {
        // ...
}];

// ...

[downloadTask cancel];

 

Hope this helps! 

7 Replies
Solution
Dropboxer

Re: API V2 analogue of canceFileLoad and cancelFileUpload

You can save the task returned by the download/upload call, and then call cancel on it:

 

DBDownloadDataTask *downloadTask = [[client.filesRoutes downloadData:filePath] setResponseBlock:^(DBFILESFileMetadata *metadata, DBFILESDownloadError *downloadError, DBRequestError *error, NSData *fileData) {
        // ...
}];

// ...

[downloadTask cancel];

 

Hope this helps! 

Level 4

Re: API V2 analogue of canceFileLoad and cancelFileUpload

Thank you Greg, perfecto! I can cancel uploads and downloads on the iOS simulator.  But when I try to run my App on a real device (iPhone 7) I get a dynlib error similar to what happens when archiving the macOS version of my App  ): I am again using the Xcode subproject method.

 

So I am stuck again ...

 

Thanks,

Steve

 

Screen Shot 2017-05-20 at 11.00.12 PM.pngScreen Shot 2017-05-20 at 11.05.40 PM.png

 

Level 4

Re: API V2 analogue of canceFileLoad and cancelFileUpload

Hmmm.  After hours of hacking I tried adding the framework an an embedded binary, and lo and behold the App now runs on a device:

 

Screen Shot 2017-05-22 at 9.49.26 AM.png

That seems to give me TWO instances of Linked Frameworks now.  In the DB docs, for method #3 Xcode subprojects the instructions are very specific:

 

1) for iOS add the framework as a Linked Framework only.

2) for macOS add the framework as an Embedded Binary only.

 

I am confused slightly smiling face

 

In any case I am prepared to mark this particular question concerning canceling up/down-loads from Objective-C as answered, leaving aside the unanswered linking questions/problems.  As an aside I will note that I can also better read the full Objective-C V2 API docs thanks to you.  It was, as they say, hard for me to see the forest for the trees.

 

Thanks!

 

Dropboxer

Re: API V2 analogue of canceFileLoad and cancelFileUpload

Thanks! I'm glad to hear you got that working.

I'll still have engineering investigate this to figure out what's causing that though.
Level 3

Re: API V2 analogue of canceFileLoad and cancelFileUpload

Hi Steve and Greg,

I already use this feature and it works but I have a further question.

 

Suppose I have to upload a file of 1 MB.  I start the upload but after 1-2 secs I stop the upload. It works but in the while some bytes have been uploaded and I want to remove them. Is there a way to automatically remove the uploaded bytes or I have to remove them by myself after I stopped the upload?

 

Many thanks and regards,

Giordano

Dropboxer

Re: API V2 analogue of canceFileLoad and cancelFileUpload

@Giordano58 If you cancel the upload before it completes, the partial data is never "committed" and you don't need to do anything to remove it. 

Level 3

Re: API V2 analogue of canceFileLoad and cancelFileUpload

Yes, ok.

 

Making use of the following method to upload file 

[userClient.filesRoutes uploadUrl:pathToSave inputUrl:db]

 

I have solved also this problem.

 

Thanks and regards,

Giordano