synology.forum архив спільноти · 2005–2022
ai.synology.forum →
ГлавнаяДополнительные Приложения Synology › SYNO.Office.Import API? Предпросмотр расшареных документов

SYNO.Office.Import API? Предпросмотр расшареных документов

ximik33rus · 23.01.2020

Привет всем!

 

Интегрирую возможность файловой шары через Synology в сторонней системе.

Знаю что имеется API, описание всех доступных методов которого есть: */webapi/query.cgi?api=SYNO.API.Info&version=1&method=query&query=ALL

Авторизоваться в нем удалось. Загружать и шарить файлы и папки тоже, однако для удобной работы с файлами,

необходимо наладить предпросмотр документов. Знаю что имеется Synology Office, который без труда это делает, но делает он это только в интерфейсе своего приложения.

Мне же нужно таль пользователю прямую ссылку на файл с предпросмотром - при этом чтоб сам пользователь оставался в своей домашней системе и даже не знал о существовании Synology.

 

Техническая поддержка о моем вопросе про методы SYNO.Office. и SYNO.SynologyDrive. отписались что хоть эти методы и перечислены в списке доступных, но фактичекски они еще не доступны для использования, и когда-нибудь таковыми все же станут.

 

Однако, мне удалось выловить "фидлером" запросы которые делает интерфейс при осуществление предросмотра файла и формировании специальной ссылки на это, которая доступна даже не авторизованному пользователю.

Ссылка вида: /?launchApp=SYNO.SDS.Office.Doc.Application#id=198276_DIOAFHO72131T0D7H6LNR2HG18.s

ynoffice.doc - где DIOAFHO72131T0D7H6LNR2HG18 каждый раз уникален для одного и того же файла при формировании запроса на пердпросмотр.

 

Процесс получения этого идентификатора состоит из нескольких запросов (как минимум двух):

1.POST https://test-nas.srvhub.ru:5323/webapi/entry.cgi HTTP/1.1

.

.

.

password=""&files=[{"format":"ds","path":"/CrmDocs/test/file.xlsx","to_parent_folder":"/volumes/volume1/CrmDocs/test/file.xlsx","viewonly":true}]&api=SYNO.Office.Import&method=start&version=1

Response:

50
{"data":{"task_id":"ivanov_ii/office_Import5E2942E81918E759"},"success":true}
0

 

2.

POST https://test-nas.srvhub.ru:5323/webapi/entry.cgi HTTP/1.1

.

.

.

stop_when_error=false&mode="parallel"&compound=[{"api":"SYNO.Office.Import","method":"status","version":1,"task_id":"ivanov_ii/office_Import5E29396FF3B366CE"}]&api=SYNO.Entry.Request&method=request&version=1

Response:

 

3bd
{"data":{"has_fail":false,"result":[{"api":"SYNO.Office.Import","data":{"auto_remove":false,"data":{"current":3,"file_info":[{"ctime":1579762408,"editors":[],"encrypt":false,"id":"198276_GVOGJG803L7E3ARETQRDRSP9P8.synoffice.sh","link_id":"","mtime":1579762408,"ntype":"sheet","object_id":"198276_GVOGJG803L7E3ARETQRDRSP9P8.synoffice.sh","title":"Почты руководителей","ver":"5f6c23b8dbd80d5a677f545d728fcf162b1d3d1d"}],"finish_time":1579762408,"object_id":["198276_GVOGJG803L7E3ARETQRDRSP9P8.synoffice.sh"],"pid":12587},"finish":true,"info":{"api":"SYNO.Office.Import","group":"","method":"start","param":{"files":[{"format":"ds","path":"/CrmDocs/test/file.xlsx","to_parent_folder":"/volumes/volume1/CrmDocs/test/file.xlsx","viewonly":true}],"password":""},"prefix":"office_Import","version":1},"success":true},"method":"status","success":true,"version":1}]},"success":true}
0

 

В результате последнего мы получаем: 198276_GVOGJG803L7E3ARETQRDRSP9P8.synoffice.sh - тот самый уникальный ID по которому становится доступна страница предпросмотра. Остается только добавить его в конец URL и вуаля.

 

Значит SYNO.Office. - методы все же функционируют и используются системой. Однако воспроизвести эти самые запросы ручками у меня не получилось, вернее сервер отвечает 114 ошибкой на подобный запрос с использованием _sid.

 

Собственно это вся история на данный момент.

 

А вопрос следующий: удавалось ли кому-нибудь и главное как, реализовать получение ссылки на предпросмотр документа из расшареной папки средствами API, для выдачи ссылки на такую страницу не авторизованному в Synology пользователю?

 

Спасибо за внимание. Обещаю отписаться о своих изысканиях, здесь если таковые окажутся успешными.