Need to see if your shared folder is taking up space on your dropbox 👨💻? Find out how to check here.
Forum Discussion
denne
9 years agoExplorer | Level 3
General URL for many files from 1 shared folder
Hello community,
In my dropbox I have a folder with 200 country flags which I would like to download automatically using the respective URLs.
My problem is that the URL of every single file contains a key which is unique.
Example:
- for the USA flag the URL is https://dl.dropboxusercontent.com/s/rzateuez21i5c95/us.png?dl=0
- for the Gereat Britain flag the URL is https://dl.dropboxusercontent.com/s/2ct7i7ov5zf6r0z/gb.png?dl=0
Every URL consists of four parts: https://dl.dropboxusercontent.com s/XXXXXXXXXXXXX/ FILENAME.FILEFORMAT ?dl=0
So every shared file gets its own key s/XXXXXXXXXXXXX/ which is unique.
Is is it somehow possible to create a URL without this unique key part s/XXXXXXXXXXXXX/ ?
Something like this: https://dl.dropboxusercontent.com/us.png?dl=0
Thank you
- Dropbox API v2 now supports listing the contents of a shared link for a folder. This can be accomplished using the same interface as listing a folder in a connected user's account, via the list_folder functionality. To list the contents of a shared link for a folder, you instead provide the shared link URL in the `shared_link` parameter to list_folder:
https://www.dropbox.com/developers/documentation/http/documentation#files-list_folder
You can also get the shared link metadata and file data using:
https://www.dropbox.com/developers/documentation/http/documentation#sharing-get_shared_link_metadata
https://www.dropbox.com/developers/documentation/http/documentation#sharing-get_shared_link_file
If you're using an official SDK, there will also be corresponding methods for these endpoints.
So, you could use a shared link for a folder and then programmatically list and access the contents.
12 Replies
Replies have been turned off for this discussion
- Sanchez9 years ago
Dropbox Community Moderator
Hey denne, welcome to our forum!As far as getting these links in a different format… I’m afraid not, because that’s just the way our links work. However, to see if there is something else we can come up with, I require a bit of clarification on what you’d like to be able to do here :thinking:Can you give me a bit more detail? We may be able to this a different way.Thanks, and have a great weekend :sunglasses:
- denne9 years agoExplorer | Level 3
Hey @Sanchez,
thank you for your feedback.
What I'm trying to do is the following:
I'd like my code to use the dropbox URL and get files depending from the value of a variable.
My code is able to get the static part of the dropbbox URL and the variable name of the file (for example, for the Great Britain it is gb.png), but it fails to get the unique key (/s/xxxxxxxxxx).
Example: in case of Great Britain the value of the variable is "gb"
- the whole URL is https://dl.dropboxusercontent.com/s/2ct7i7ov5zf6r0z/gb.png?dl=0
- the static part of the URL is https://dl.dropboxusercontent.com/s/ ?dl=0
- the variable part of the URL is 2ct7i7ov5zf6r0z and gb.png
My code is able to get the file name ( gb.png ) but not the unique keys ( 2ct7i7ov5zf6r0z )
Is it somehow possible to create dropbox URL without unique keys (like 2ct7i7ov5zf6r0z) ?
Thank you,
Denne
- Mark9 years ago
Super User II
Is this for an app you are developing Denne?
If so I'll move this to the API area where the API team may be able to help - denne9 years agoExplorer | Level 3
Hi Mark,
yes, it is for an app I'm playing with.
My idea was: to show country flags which I hold in my dropbox, but every single flag-file has not only a file name (like gb.png) but also a dropbox key (/s/xxxxxxxxxxx) for that file which makes the whole URL unique and thus impossible to generalize the call of the URL.
Thank you,
Denne - Greg-DB9 years ago
Dropbox Community Moderator
Hi Denne, Sanchez is correct, there isn't a way to get a general shared link like this, but I'll pass this along as a feature request. - Greg-DB9 years ago
Dropbox Community Moderator
Dropbox API v2 now supports listing the contents of a shared link for a folder. This can be accomplished using the same interface as listing a folder in a connected user's account, via the list_folder functionality. To list the contents of a shared link for a folder, you instead provide the shared link URL in the `shared_link` parameter to list_folder:
https://www.dropbox.com/developers/documentation/http/documentation#files-list_folder
You can also get the shared link metadata and file data using:
https://www.dropbox.com/developers/documentation/http/documentation#sharing-get_shared_link_metadata
https://www.dropbox.com/developers/documentation/http/documentation#sharing-get_shared_link_file
If you're using an official SDK, there will also be corresponding methods for these endpoints.
So, you could use a shared link for a folder and then programmatically list and access the contents. - denne9 years agoExplorer | Level 3
Thank you Greg! I'll give it a try
- duckladydinh6 years agoExplorer | Level 4
I confirmed that this method is not going to work. The json response contains entries with id, tag and so one, but you cannot really download the subfolders or anything with them.
- Greg-DB6 years ago
Dropbox Community Moderator
duckladydinh I'm not sure I understand your comment. If something isn't working as documented, please share the details so we can look into it for you.
For example, you can use the /2/files/list_folder endpoint to list the contents of a folder from a shared link for the folder:
curl -X POST https://api.dropboxapi.com/2/files/list_folder \ --header "Authorization: Bearer <ACCESS_TOKEN>" \ --header "Content-Type: application/json" \ --data "{\"path\": \"\",\"shared_link\": {\"url\": \"<SHARED_LINK_FOR_FOLDER>\"}}" # { # "entries": [ # { # ".tag": "folder", # "name": "Test", # "path_lower": "/test shared folder/test", # "path_display": "/test shared folder/Test", # "parent_shared_folder_id": "248930168", # "id": "id:uKXaztDfaPQAAAAAAAAABA", # "sharing_info": { # "read_only": false, # "parent_shared_folder_id": "248930168", # "traverse_only": false, # "no_access": false # } # }, # <redacted for brevity> # ], # "cursor": "<redacted for brevity>", # "has_more": false # }And you can also list sub-folders like that using the "path" parameter:
curl -X POST https://api.dropboxapi.com/2/files/list_folder \ --header "Authorization: Bearer <ACCESS_TOKEN>" \ --header "Content-Type: application/json" \ --data "{\"path\": \"/test\",\"shared_link\": {\"url\": \"<SHARED_LINK_FOR_FOLDER>\"}}" # { # "entries": [ # <redacted for brevity> # { # ".tag": "file", # "name": "test.txt", # "path_lower": "/test shared folder/test/test.txt", # "path_display": "/test shared folder/Test/test.txt", # "parent_shared_folder_id": "248930168", # "id": "id:uKXaztDfaPQAAAAAAAAB3w", # "client_modified": "2018-05-10T17:07:46Z", # "server_modified": "2019-10-18T20:35:37Z", # "rev": "5953546d8c26e0ed65f78", # "size": 4, # "sharing_info": { # "read_only": false, # "parent_shared_folder_id": "248930168", # "modified_by": "<redacted for brevity>" # }, # "is_downloadable": true, # "content_hash": "954d5a49fd70d9b8bcdb35d252267829957f7ef7fa6c74f88419bdc5e82209f4" # } # ], # "cursor": "<redacted for brevity>", # "has_more": false # }And then you can download a listed file using /2/sharing/get_shared_link_file by likewise using the relative path:
curl -X POST https://content.dropboxapi.com/2/sharing/get_shared_link_file \ --header "Authorization: Bearer <ACCESS_TOKEN>" \ --header "Dropbox-API-Arg: {\"url\": \"<SHARED_LINK_FOR_FOLDER>\",\"path\": \"/test.txt\"}" # test file contents - duckladydinh6 years agoExplorer | Level 4
Hi, thank you Grek. K for your very helpful comment. I did not look at the 'get_shared_link_file' and yes, it can fix my current problem. I am sorry for jumping to an early conclusion reconfirmed that the solution works.
Just a little question: Is there any way to do the same for 'folder'?
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!