我想问一下,如果有任何方法可以检索公开共享的文件夹的文件链接。就像有人创建随机公共文件夹(每个人都可以查看它)并将一些随机文件放入其中。所以我需要从该文件夹中获取所有文件链接。我所知道的是以格式链接到该文件夹:https://www.dropbox.com/sh/[code]/[code]。 我可以通过使用dropbox api来实现,或者唯一的选择是直接刮掉Dropbox页面吗?
答案 0 :(得分:0)
获取特定共享链接信息的官方方法是使用Dropbox API的/ 2 / sharing / get_shared_link_metadata端点:
https://www.dropbox.com/developers/documentation/http/documentation#sharing-get_shared_link_metadata
在官方Dropbox .NET SDK中使用GetSharedLinkMetadataAsync
方法:
但遗憾的是,这并没有提供文件列表。我们会考虑功能请求。
请注意,抓取网站容易出错,并且可能会在没有警告的情况下中断。 (无论如何,它也反对the terms。)
编辑:
Dropbox API v2现在支持列出文件夹的共享链接的内容。这可以通过list_folder功能使用与列出已连接用户帐户中的文件夹相同的界面来完成。要列出文件夹共享链接的内容,请将shared_link
参数中的共享链接URL提供给/ 2 / files / list_folder:
https://www.dropbox.com/developers/documentation/http/documentation#files-list_folder
如果您使用的是官方SDK,则此端点也会有相应的方法。在可用作ListFolderAsync
的.NET SDK中:
答案 1 :(得分:0)
这是一个复制粘贴示例:
using Dropbox.Api;
using Dropbox.Api.Files;
...
// AccessToken - get it from app console
// FolderToDownload - https://www.dropbox.com/sh/{unicorn_string}?dl=0
using (var dbx = new DropboxClient(_dropboxSettings.AccessToken))
{
var sharedLink = new SharedLink(_dropboxSettings.FolderToDownload);
var sharedFiles = await dbx.Files.ListFolderAsync(path: "", sharedLink: sharedLink);
foreach (var file in sharedFiles.Entries)
{
}
}
对于在公共共享文件夹中使用将路径设置为空字符串,文档尚不清楚。