Using Dropbox API v2 and Python, how to get a list of files and folders present in a publicly shared folder? - dropbox

I am new to Dropbox API and creating a Python app for a publicly shared link. I want to get a list of files and folders and their modified date present in the said publicly shared link. I am looking for something similar to "files_list_folder" in terms of functionality. Thanks.

[Cross-linking for reference: https://www.dropboxforum.com/t5/API-support/How-to-get-a-list-of-files-and-folders-present-in-a-publicly/m-p/257852#M14954 ]
You can actually use files_list_folder itself to list the contents of a shared link for a folder. To do so, you should use the shared_link parameter. That would look like this:
import dropbox
dbx = dropbox.Dropbox("<ACCESS_TOKEN>")
url = "https://www.dropbox.com/sh/..."
shared_link = dropbox.files.SharedLink(url=url)
print(dbx.files_list_folder(path="", shared_link=shared_link))

Related

Exporting a list of images from Google Photos or DropBox as CSV

Do any of the major online photo storage/sharing platforms offer a reasonable way to export a set of image URLs and titles as something like a CSV or fetch them as JSON from a REST API?
I am trying to get any sort of clean list of title, url value pairs for all the images in a particular folder or gallery.
Google Drive/Photos would be my prefered platform, but I would switch to DropBox or other service if I could easily get such an export list.
If you're going to use Google Drive, you'll probably end up using these properties from File Resource:
webViewLink - a link for opening the file in a relevant Google editor
or
webContentLink - a link for downloading the content of the file in a
browser.
You can fetch this properties using files.list or files.get.
For Dropbox, you would use the /2/files/list_folder[/continue] endpoints to list the desired files:
https://www.dropbox.com/developers/documentation/http/documentation#files-list_folder
https://www.dropbox.com/developers/documentation/http/documentation#files-list_folder-continue
Then, you can use /2/sharing/create_shared_link_with_settings to create shared links for the desired files:
https://www.dropbox.com/developers/documentation/http/documentation#sharing-create_shared_link_with_settings
Or, to retrieve existing shared links, use /2/sharing/list_shared_links:
https://www.dropbox.com/developers/documentation/http/documentation#sharing-list_shared_links
Those are links to the documentation for the HTTPS endpoints themselves, but we recommend using one of the official SDKs if possible:
https://www.dropbox.com/developers/documentation
Those have corresponding native methods for the HTTPS endpoints.

How do I get standard link to share pictures in dropbox

I need to upload bulk pictures and get each of their links to share it. The link is not standard in dropbox.
Lets say I have two pictures, their names: 1.jpg and 2.jpg
I want to get standard links like:
http://www.dropbox.com/1.jpg,
http://www.dropbox.com/2.jpg
is there any way to do it?
Thanks
You can use the Dropbox API to get or create shared links for files. Specifically, you can use /2/sharing/create_shared_link_with_settings to create a shared link for a file or folder:
https://www.dropbox.com/developers/documentation/http/documentation#sharing-create_shared_link_with_settings
Or you can use /2/sharing/list_shared_links to get existing shared links:
https://www.dropbox.com/developers/documentation/http/documentation#sharing-list_shared_links
There are also corresponding methods in the SDKs if you're using one:
https://www.dropbox.com/developers/documentation

Can I search/get file by using File ID in Dropbox V2 API?

I'm using Dropbox V2 APIs (C#) to get files/folders from Dropbox account. I am able to fetch particular file/folder by using its specific path. I wanted to know whether there is any way I can fetch file/folder by using ID?
This depends on exactly which operation(s) you're referring to. For example, downloading files and getting metadata for files or folders support specifying file IDs:
https://www.dropbox.com/developers/documentation/http/documentation#files-download
https://www.dropbox.com/developers/documentation/http/documentation#files-get_metadata
You would specify the path as a string like "id:a4ayc_80_OEAAAAAAAAAYa".
Searching and listing folders currently do not support this though:
https://www.dropbox.com/developers/documentation/http/documentation#files-list_folder
https://www.dropbox.com/developers/documentation/http/documentation#files-search
The same applies to the corresponding methods in the SDKs.
Edit: list_folder and search now do support file IDs.

Is it possible to know the folder content? OneDrive

I wanna try OneDrive Api for Android and I was taking a look at the methods and possibilities this Api offers on this link and this other one but I don't see any way of listing the files a folder contains.
My App would need to upload some files to OneDrive, always using the same folder as root, say /MyFolder. The problem is that it only knows this root folder and all its content must be found out by means of recursive calls, that is, I list the files contained in /MyFolder and check if it's a folder or a file and in the first case list the files again it contains and so on.
Am I missing something or this Api doesn't provide such thing?
The Json object returned for a query against a Folder should contain a "data" property that is an array of children for the folder. You can see this in the interactive SDK (http://isdk.dev.live.com/dev/isdk/default.aspx) by playing with the "Reading Folder Properties" API.

Office 365 MyFiles API - How to get the direct children in the root of the One Drive folder

I'm trying to work with the new summer release of the Office 365 API tool for Visual Studio 2013 (update 3). It works fine except one problem I've encountered which can be called also a missing functionality.
I found no reasonable way to retrieve the direct children of the root folder from my One Drive for business Document Library using the newly added SharePointClient library.
The API call of SharePointClient.Files will retrieve all the files and folders from the whole document library including sub-folders. So in order to get only the direct children I have to page through all the documents and folders and analyze their URL. This is not acceptable for my application scenario. For a sub-folder I can get the direct children like this: SharePointClient.Files["<folder_id>"].ToFolder().Children This is what I need but it can't be applied to the root folder.
I've tried to use the REST API directly and similarly the request GET ../_api/files will retrieve all files and folders in the default document library and I found no simple way to list only the direct children of the root. Also there is no convenient way to get the path or GUID of the default document library which the SharePointClient.Files automatically uses.
Parsing the result XMLs of the REST API calls I may get the GUID of the default document library, that will let me use a different REST API to list files and folders separately for the root folder, but these calls results in a different XML schema from that used by SharePointClient. This means that to get only the direct children of the root I would have to re-implement the whole SharePointClient library.
If anybody has some good advice I'll be very thankful.
I just ran into the same issue - hopefully this will be remedied before the release version of the api tools. Here is what I've done to get only the root folder content:
[Create your spClient = SharePointClient]
var allFiles = await spClient.Files.ExecuteAsync();
var rootFiles = allFiles.CurrentPage.Where(i => !i.Id.Contains("/"));
You lose the IPagedCollection wrapper and you may need to get more than the 'CurrentPage' to see all files but this is the best workaround I've found. I'm then able to you the 'ToFolder()' method you mentioned above to list content of sub-folders.