Получение ссылки на файл через Яндекс АПИ
Я программно загружаю файл на Яндекс.Диск через АПИ, используя библиотеку YandexDisk.Client. С помощью него могу получить ссылку на скачивание файла, но не могу получить ссылку на просмотр файла. Есть ли способ получения данной ссылки?
Вот пример кода, который я использую для отправки файла и получения ссылка на скачивание:
string key = "мой_токен";
string folder = "название_папки_на_облаке";
string path = "ссылка_на_файл";
var api = new DiskHttpApi(key);
// Полная ссылка на файл в облаке
string filePath = $@"disk:/" + $"{path}" + "/" + $"{fl}";
// Получение ссылки для загрузки файла
var link = await api.Files.GetUploadLinkAsync("disk:/" + path + "/" + $"{outputVideoPath.Split('\\').Last()}", overwrite: true);
// Загрузка файла на Яндекс.Диск
using (var fs = System.IO.File.OpenRead(Path.Combine(Environment.CurrentDirectory, fl)))
{
await api.Files.UploadAsync(link, fs);
}
//Получение ссылки на скачивание
var downloadLink = await api.Files.GetDownloadLinkAsync("disk:/" + path + "/" + $"{outputVideoPath.Split('\\').Last()}");
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Объект типа Resource
содержит ссылку на превью.
Его можно получить через GetInfoAsync
.
Resource info = await api.MetaInfo.GetInfoAsync(new ResurceRequest { Path = filePath });
string preview = info.Preview;
изменил на info.PublicUrl и получил то что нужно
Тогда значит info.PublicUrl
- ваш вариант.
Ссылки на файл не появится, пока файл не будет иметь свойство, что он может быть опубликован, для этого нужно дописать следующее:
Link link = await api.MetaInfo.PublishFolderAsync(path, CancellationToken.None);