You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.

Forum Discussion

FoxyLoxy's avatar
FoxyLoxy
New member | Level 2
3 years ago

Acces thumbnail images for PDFs

I'm using Dropbox to store PDF files, and my external application needs to programmatically access a thumbnail image of the first page for each of these PDF files.

 

These thumbnail images need to be inserted into emails, so I think the Embedder functionality will not be suitable for this use case?

 

Is there a way to directly access the thumbnail that Dropbox generates for each file via http?

 

If not, is there a suggested/recommended approach to convert PDF to an image format and use that for a thumbnail?

 

Thanks

  • Здравко's avatar
    Здравко
    Legendary | Level 20

    FoxyLoxy wrote:
    ...

    Is there a way to directly access the thumbnail that Dropbox generates for each file via http?

     

    If not, is there a suggested/recommended approach to convert PDF to an image format and use that for a thumbnail?

    ...

    Hi FoxyLoxy,

    Supported way to get a thumbnail image from wide range of file types is using the API end point 2/files/get_thumbnail_v2 (or use equivalent call in some of Dropbox SDKs). You can embed the image wherever you want directly or store it to Dropbox and create a link to the thumbnail for later use (and so directly available through HTTP). Whatever is more convenient to you.

    In Dropbox documentation another way to construct a link for dynamic generation of such images is described (not to store a image which could get outdated), but seems this feature is broken now (on my attempts "Internal Server Error" is the response, persistently).

    Hope this gives idea.

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Staff rankDropbox Staff

    FoxyLoxy That's correct, /2/files/get_thumbnail_v2 technically can return thumbnails for PDF files. It doesn't officially document support for PDF files in particular though, so I can't officially recommend relying on that. I will send this along as a request to consider that officially supported, but I can't promise if or when that might be done.

     

    Здравко You mentioned you're getting an "Internal Server Error" on some piece of functionality. Can you share the details so we can look into it? Thanks in advance!

    • Здравко's avatar
      Здравко
      Legendary | Level 20

      Greg-DB wrote:

      ...

      ЗдравкоYou mentioned you're getting an "Internal Server Error" on some piece of functionality. Can you share the details so we can look into it? Thanks in advance!


      Hi Greg-DB,

      Sure, I can. In 2/files/get_thumbnail_v2 description can be seen that connection to this end point can be authenticated using App Authentication. Such type of authentication assumes possibility of using both POST and GET request. Also, authentication and argument should be able pass either as header or as parameters and both are assumed equivalent. Yes but no!!! When I pass headers using GET request:

      curl -s -S -o ~/dump.jpg -D - -u "<app key>:<app secret>" -H "Dropbox-API-Arg: {\"resource\": {\".tag\": \"link\",\"url\": \"<shared link>\"},\"size\": \"w64h64\"}" https://content.dropboxapi.com/2/files/get_thumbnail_v2

      The result is as expected. Here <app key> and <app secret> are valid ones. <shared link> is valid link to a file able to produce thumbnail. In my case I use a link to arbitrary PDF in my account.

      When I try pass the same (or equivalent thing, according to documentation) as parameters:

      curl -s -S -o ~/dump.txt -D - -g "https://content.dropboxapi.com/2/files/get_thumbnail_v2?arg={\"resource\":{\".tag\":\"link\",\"url\":\"<shared link>\"},\"size\":\"w128h128\"}&authorization=Basic%20<base64 key&secret>"

       Where <shared link> is the same as above and <base64 key&secret> is produced according documentation from <app key> and <app secret>. Follows the result (response body is empty):

      HTTP/1.1 500 Internal Server Error
      Server: envoy
      Date: Wed, 23 Feb 2022 19:17:38 GMT
      Content-Type: text/plain; charset=utf-8
      X-Content-Type-Options: nosniff
      Cache-Control: no-cache
      Vary: Dropbox-API-Arg, Authorization, Accept-Encoding
      Content-Disposition: attachment; filename=unspecified
      Content-Security-Policy: sandbox
      X-Webkit-Csp: sandbox
      X-Content-Security-Policy: sandbox
      Content-Security-Policy: sandbox allow-forms allow-scripts
      X-Robots-Tag: noindex, nofollow, noimageindex
      Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
      X-Robots-Tag: noindex, nofollow, noimageindex
      X-Dropbox-Response-Origin: remote
      X-Dropbox-Request-Id: 81e8c25c686642a3b479972366796ab9
      Transfer-Encoding: chunked

      I have no idea what's wrong here! As a consequence, such request can not be encoded in a simple link. The same is the result when I try to in web browser (I checked in Firefox). That's it.

      • Greg-DB's avatar
        Greg-DB
        Icon for Dropbox Staff rankDropbox Staff

        Здравко Thanks! That's helpful. I just checked on this, and it looks like that failure is due to an invalid app key and/or secret value, so please double check your values. Additionally, there seems to be a bug on our side with how we handle that error case, resulting in the 500 Internal Server Error being returned, instead of a useful error message/response. I'll ask the team to fix that up.

    • FoxyLoxy's avatar
      FoxyLoxy
      New member | Level 2

      Thanks @Greg-DB,

      I'll try using /2/files/get_thumbnail_v2. I had assumed this would simply not work at all for PDF files, since they're not mentioned in the list of supported file types.

About Dropbox API Support & Feedback

Node avatar for Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

5,911 PostsLatest Activity: 2 hours ago
333 Following

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 or Facebook.

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!