Скачать документ
Чтобы скачать документ, прикреплённый к сущности, нужно знать внутренний ID этого документа. Внутренний ID хранится в поле value
свойств документа. Чтобы узнать внутренний ID документа, используйте запрос Получить документ объекта.
Ссылки на документы хранятся как Свойства сущностей, так что, узнать внутренний ID документа можно также запросом Получить свойства объекта.
Запросы
|
Используйте внутренний ID чтобы получить ссылку на документ следующим образом:
http://<saymon-hostname>/node-resources/docs/uid/<внутренний-ID>/pdf/1.pdf
Скачать документ с указанным ID
Этот пример показывает как скачать документ, используя его id
. Для этого, в этом примере мы получаем внутренний ID запросом Получить документ объекта, а потом используем библиотеку urllib.request для скачивания файла.
import requests
import urllib.request
import json
saymon_hostname = <saymon_hostname>
api_token = <api_token>
object_id = <object_id>
document_id = <document_id>
# Get the document's properties
url = "http://" + saymon_hostname + "/node/api/objects/" + object_id + "/docs/" + document_id
params = {
"api-token": api_token
}
response = requests.request("GET", url, params=params)
# Get document's internal ID and its name
doc = json.loads(response.text)
pdf_id = doc['value']
pdf_name = doc['name']
# Download the PDF file
urllib.request.urlretrieve("http://"+ saymon_hostname +"/node-resources/docs/uid/" + pdf_id + "/pdf/1.pdf?api-token=" + api_token, pdf_name)
Скачать все документы указанного объекта
Этот пример показывает как скачать все документы указанного объекта. Сначала, мы получаем все свойства объекта запросом Получить свойства объекта. Потом, для всех полученных свойств мы скачиваем файлы, указанные в свойствах с Типом = 7 (Uploaded Document) с помощью библиотеки urllib.request.
import requests
import urllib.request
import json
saymon_hostname = <saymon_hostname>
api_token = <api_token>
object_id = <object_id>
# Get all properties of an object
url = "http://" + saymon_hostname + "/node/api/objects/" + object_id + "/props"
params = {
"api-token": api_token
}
response = requests.request("GET", url, params=params)
props = json.loads(response.text)
# Filter properties of type PDF document (type_id = 7)
for prop in props:
if prop['type_id'] == 7:
# Get document's internal ID and its name
pdf_id = prop['value']
pdf_name = prop['name']
# Download the PDF file
urllib.request.urlretrieve("http://"+ saymon_hostname +"/node-resources/docs/uid/" + pdf_id + "/pdf/1.pdf?api-token=" + api_token, pdf_name)