cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Announcements
Want to learn some quick and useful tips to make your day easier? Check out how Calvin uses Replay to get feedback from other teams at Dropbox 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: Path for .NET SDK thumbnails

Path for .NET SDK thumbnails

GErler01
Explorer | Level 3
Go to solution

The .NET SDK examples seen to be thin.  I am looking to display thumbnails from image files on Dropbox.   I have the BeginGetThumbnail method but am having difficulty implementing it.   It is returning null for me.  Is this an async method??

1 Accepted Solution

Accepted Solutions

Greg-DB
Dropbox Staff
Go to solution

1. To set parameters like those, you should supply values like this:

  var asyncResult = this.client.Files.BeginGetThumbnail (path, Dropbox.Api.Files.ThumbnailFormat.Jpeg.Instance, Dropbox.Api.Files.ThumbnailSize.W64h64.Instance); 

2. That IsPhoto is unfortunately not what you're looking for. That just tells you the particular subtype of a MediaMetadata instance. If you want to check the type of a file, you should check its file extension. You can then compare the extension against the list of supported extensions for GetThumbnail.

View solution in original post

7 Replies 7

Greg-DB
Dropbox Staff
Go to solution

If you use BeginGetThumbnail, you'll need to also use EndGetThumbnail. The Begin method fires up an async operation and the End method blocks until it completes. That would look something like this:

 

var asyncResult = this.client.Files.BeginGetThumbnail (path);
// ...
var thumbnailResult = this.client.Files.EndGetThumbnail (asyncResult);

 

It shouldn't return null though, and it seems to be working for me. Can you share the code that's giving you trouble?

 

Alternatively, you can use just GetThumbnailAsync like this:

 

var thumbnailResult = await this.client.Files.GetThumbnailAsync(path);

 

GErler01
Explorer | Level 3
Go to solution

Thanks for the info.  Got things going the right direction.  I thought I needed to used the EndGetThumb but wasn't sure where it fit in the puzzle.   On the topic of thumbs - is it possible to call all the thumb for files that are images in a folder or do I have step thru them . 

Thx

G

Greg-DB
Dropbox Staff
Go to solution

No, unfortunately the API doesn't offer a way to get thumbnails in bulk like that, but I'll be sure to pass this along as a feature request. You'll need to call for each one you need.

GErler01
Explorer | Level 3
Go to solution

No problem.  Its easy enough to setup an asinc service, get a list and parse thru them.   2 more questions I ran into.

1.  Is Thumbnail size fixed??  I have changed the size in the request but they are always the same;

       "BeginGetThumbnail(item.PathLower, format.AsJpeg, size.AsW64h64)"

 

2.  How do I check if a file is a photo??  I thought this had promise but nope

      "Entries.Where(n=>n.AsFile.MediaInfo.AsMetadata.Value.IsPhoto))"

 

Thx

G


Greg-DB
Dropbox Staff
Go to solution

1. To set parameters like those, you should supply values like this:

  var asyncResult = this.client.Files.BeginGetThumbnail (path, Dropbox.Api.Files.ThumbnailFormat.Jpeg.Instance, Dropbox.Api.Files.ThumbnailSize.W64h64.Instance); 

2. That IsPhoto is unfortunately not what you're looking for. That just tells you the particular subtype of a MediaMetadata instance. If you want to check the type of a file, you should check its file extension. You can then compare the extension against the list of supported extensions for GetThumbnail.

GErler01
Explorer | Level 3
Go to solution
Thanks for the information.
Go kind of a feel for how this API is put together
don't seem to be many using the .NET
G

Greg-DB
Dropbox Staff
Go to solution
The Dropbox API now offers the ability to get thumbnails in batches. In the .NET SDK, that's available as:

https://dropbox.github.io/dropbox-sdk-dotnet/html/M_Dropbox_Api_Files_Routes_FilesUserRoutes_GetThum...
Need more support?