Я получил ссылку на общую папку от компании, занимающейся электронной коммерцией. Ссылка - publi c и не передается напрямую в мою учетную запись Dropbox.
Как мне получить URL-адрес изображения, которое я могу передать либо DownloadAsyn c методу того же sdk, либо просто HttpClient и хорошо ... скачать его?
В идеале это было бы быть той же ссылкой, которую я получаю, когда нажимаю на изображение при просмотре этой общей папки в браузере.
https://www.dropbox.com/sh/{folder_hash}/{file_hash_maybe}/{filename}?dl=0
Вот что я пробовал:
using Dropbox.Api;
using Dropbox.Api.Files;
...
var accessToken = "abracadabra";
var sharedFolderUrl = "https://www.dropbox.com/sh/{folder_hash}?dl=0";
using (var dbx = new DropboxClient(accessToken))
{
var sharedLink = new SharedLink(sharedFolderUrl);
var sharedFiles = await dbx.Files.ListFolderAsync(path: "", sharedLink: sharedLink);
// sharedFiles - has over 13,000 entries, I use cursor to get them all.
foreach (var file in sharedFiles.Entries)
{
if (file.IsFile)
{
// tried this, but:
// 1. it's crazy to loop through all
// 2. link.Response.Url gives me the same url to a shared folder for all items
var link = await dbx.Sharing.GetSharedLinkFileAsync(url: sharedFolderUrl, path: "/" + file.Name);
}
}
}