#5928: Как экпортировать список URL через API?

Отредактирована: 106 дней назад

Симптомы

При попытке экпортировать список через API v2.nlists.list.export получаю ответ вида <string>d213efeb-8544-4d1d-bff6-7700434b9705</string>
При попытке скачать файл (без разницы curl или в браузере) по ссылке http://192.168.12.253:4040/rpc/d213efeb-8544-4d1d-bff6-7700434b9705 получаю ошибку "File not found"

Решение

В API UserGate NGFW метод v2.nlists.list.export не возвращает сам файл напрямую. Воспользуйтесь методом v3.storage.file.genExternalUrl для получения File URL.

https://sd.usergate.com/attachments/M/7/M7KIMJaFO1hZ017D_tc/NDYxMzY0LjYzOTQ5NjMxNzEzMTc3MDgwOTgzNjYwMA.png

#!/usr/bin/env python3

SERVER = '192.168.152.150'
USER = 'Admin'
PASSWORD = '1'

import xmlrpc.client
from pprint import pprint

server = xmlrpc.client.ServerProxy('http://' + SERVER + ':4040/rpc', verbose=False)

res = server.v2.core.login(USER, PASSWORD, {})
auth_token = res['auth_token']
list_id=****

file_uid=server.v2.nlists.list.export(auth_token, list_id, {})
URL=server.v3.storage.file.genExternalUrl(auth_token, file_uid)
pprint(URL)

server.v2.core.logout(auth_token)

Далее, необходимо перейти по ссылке, которую выдаст скрипт, и добавить IP-адрес и порт 4040.

*Для того, чтобы узнать list_id нужного списка URL воспользуйтесь инструментом разработчика - f12*
Пример:

https://sd.usergate.com/attachments/h/U/hUE_aS1PthhYa_64_tc/MTcyMzM1LjMyNDcxODE5MjkyMTc3MDgxNDE0MDM3Nw.png

Литература:
https://static.usergate.com/manuals/api/ngfw-7.4.1/methods/nlists.html#v2nlistslistexport