TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
ПРО ДАННЫЕ И ДАТА-ИНЖЕНЕРОВ

5 Feb 2025, 13:26

Открыть в Telegram Поделиться Пожаловаться

03:17
Видео недоступно для предпросмотра
Смотреть в Telegram
Получение содержимого папки из Yandex Disk API 🔥

После добавления коннектора к файлам Яндекс Диска для Power Query очень просили получение файлов из папки.

Как в PBI Service обновлять данные из папки без шлюза?
🫣

1) Грузим файлы в папку на Яндекс.Диск.
2) Обращаемся к API Яндекс.Диска с помощью функции ниже и получаем список доступных файлов.
3) На основе коннектора к файлам пишем запрос по обработке типового файла и превращаем этот запрос в функцию от адреса файла.
Если сразу параметризуете адрес файла в запросе, можно быстро создать функцию, которая будет меняться при изменении запроса. Для этого просто жмём правой кнопкой на запрос с параметром и выбираем создать функцию.

4) Добавляем к списку файлов столбец с вызовом нашей функции от адреса файла и разворачиваем полученные таблицы.

Процесс показал на видео. Как итог - все файлы в папке обработаны одинаково, а при добавлении в папку похожих файлов их данные автоматом попадают в общую таблицу. При этом функцию обработки легко корректировать.

Где это работает?
- Power BI Desktop
- Power BI Service
- Power BI Report Server
- Excel

Получение списка файлов из папки тут:
let
function = (fileLink as text, token as text)=>
let
headers=[#"Content-Type" = "application/json", #"Authorization" = "OAuth "&token, #"Accept" = "application/json"],
querydata = [#"path" = Text.Replace(fileLink, "\","/"), limit="1000000"],
web = Web.Contents("https://cloud-api.yandex.net/", [RelativePath="v1/disk/resources", Headers = headers, ManualStatusHandling = {404, 400}, Query =querydata]),
result = Json.Document(web),
link = result[_embedded],
items = link[items],
toTable = Table.FromList(items, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
expandColumn = Table.ExpandRecordColumn(toTable, "Column1", {"created", "modified", "size","path"}, {"created", "modified","size", "path"}),
pathCorrect = Table.ReplaceValue(expandColumn,"disk:/","",Replacer.ReplaceText,{"path"}),
chType = Table.TransformColumnTypes(pathCorrect,{{"created", type datetime}, {"modified", type datetime}, {"size", type number}})
in
chType,
result = Value.ReplaceType(function, FuncType),
FuncType = type function (fileLink as (type text meta [
Documentation.FieldCaption = "Путь к папке после C:\YandexDisk\:",
Documentation.SampleValues = {"Мои файлы\Лучшие файлы"}]),
token as (type text meta [
Documentation.FieldCaption = "Ваш токен (ссылка на получение ниже):",
Documentation.SampleValues = {"y0_AgAAAMfGA...rBX0d-ZpA5O"}]))
as table meta [
Documentation.Name = "Получаем список сущностей из папки Яндекс.Диска",
Documentation.LongDescription = "",
Documentation.Examples = {[ Description = "Ссылка на получение токена:",
Code = "https://oauth.yandex.ru/authorize?response_type=token&client_id=a363cf6712db45978a012820777fc06a",
Result = "По ссылке вы получите токен" ]}]
in result

1.9k 1 39 24
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot