cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Announcements
We’re having some trouble with our services currently. We’re working to fix the problem as quickly as we can. We’ll share another update shortly. For the latest information visit here.

Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Re: Getting File Metadata after doing upload - Android

Getting File Metadata after doing upload - Android

Robert S.138
Helpful | Level 7
Go to solution

To upload in Android I am using

sDbxClient.files().uploadBuilder(pathName)
.withMode(WriteMode.OVERWRITE)
.uploadAndFinish(inputStream);

which returns, what? The docs say it returns the server response as a "R".  How do I extract the file metadata from the server response to uploadAndFinish?  I want to get the server modified time from it.

 

I am looking for something equivalent to what I do in Objective-C, where is use the completion block of uploadData:mode:autorename:clientModified:mute:inputData:.

1 Accepted Solution

Accepted Solutions

Greg-DB
Dropbox Staff
Go to solution

R is the response, containing the metadata of the uploaded file. So, for example in this case you could do something like:

 

FileInputStream inputStream = new FileInputStream(localPath);
try {
    FileMetadata fileMetadata = client.files().uploadBuilder(remotePath)
            .withMode(WriteMode.OVERWRITE)
            .uploadAndFinish(inputStream);
    System.out.println(fileMetadata.getName());
    System.out.println(fileMetadata.getServerModified());
} finally {
    inputStream.close();
}

View solution in original post

3 Replies 3

Greg-DB
Dropbox Staff
Go to solution

R is the response, containing the metadata of the uploaded file. So, for example in this case you could do something like:

 

FileInputStream inputStream = new FileInputStream(localPath);
try {
    FileMetadata fileMetadata = client.files().uploadBuilder(remotePath)
            .withMode(WriteMode.OVERWRITE)
            .uploadAndFinish(inputStream);
    System.out.println(fileMetadata.getName());
    System.out.println(fileMetadata.getServerModified());
} finally {
    inputStream.close();
}

Robert S.138
Helpful | Level 7
Go to solution

Thanks, it seems to work.  I thought it might be something like that.  But starting from the official docs for uploadAndFinish, all I could see was that it returned type R.  Where in the docs was I supposed to see that R was FileMetadata in this case?

Greg-DB
Dropbox Staff
Go to solution

UploadBuilder gives you an UploadUploader which is documented as DbxUploader<FileMetadata,UploadError,UploadErrorException>. 

 

That's definitely unclear/difficult to find if you're looking at uploadAndFinish itself though, so I'll ask the team to clarify that in the documentation. Thanks!

Need more support?