Скачать сохранённый файл

Скачивает файл, загруженный на сервер системы Центральный Пульт.

Запрос

HTTP Запрос

GET /node/api/files/:id

Параметры пути

Параметр Тип Описание

id

String
обязательный

ID файла.

Параметры запроса

Параметр Тип Описание

json

Вернуть файл в формате JSON. Этот параметр должен быть использован без значения.

Тело запроса

Тело запроса пустое.

Ответ

Если вы добавите ?json в конец запроса, система вернёт файл в формате JSON. Поле name содержит имя файла, а поле data содержит в файл виде base64-строки.

Если не указывать параметр json, система вернёт двоичный файл.

Пример файла в формате JSON
{
  "name": "image-file.png",
  "data": "data:image/png;base64,iVBORw..."
}

Примеры

Скачать файл

Этот пример скачивает файл с указанным ID.

Запрос

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

  • Bash

  • JavaScript

  • NodeJS

  • Python

login=<...>
password=<...>
saymon_hostname=<...>
file_id=<...>
url=https://$saymon_hostname/node/api/files/$file_id

curl -X GET $url -u $login:$password -o image.png
let login = <...>
let password = <...>
let saymonHostname = <...>
let fileId = <...>
let path = "/node/api/files/" + fileId;
let auth = "Basic " + btoa(login + ":" + password);

let headers = new Headers();
headers.append("Authorization", auth);

let requestOptions = {
    method: "GET",
    headers: headers
};

fetch(saymonHostname + path, requestOptions)
    .then(response => response.blob())
    .then(blob => {
    var file = window.URL.createObjectURL(blob);
    window.location.assign(file);
  })
    .catch(error => console.log("error", error));
const http = require("http");
const fs = require('fs');

let login = <...>
let password = <...>
let saymonHostname = <...>
let fileId = <...>
let path = "/node/api/files/" + fileId;
let auth = "Basic " + Buffer.from(login + ":" + password).toString("base64");

let options = {
    "method": "GET",
    "hostname": saymonHostname,
    "headers": {
        "Authorization": auth
    },
    "path": path
};

let req = http.request(options, function (res) {
    let chunks = [];

....
res.on("data", function (chunk) {
    chunks.push(chunk);
});

res.on("end", function (chunk) {
    let body = Buffer.concat(chunks);
    console.log(body.toString());
....

fs.writeFile('image.png', body.toString(), function (err) {
    if (err) return console.log(err);
    console.log('Saved image.png');
  });
    });

 res.on("error", function (error) {
     console.error(error);
 }); });

req.end();
import requests
import urllib.request

login = <...>
password = <...>
saymon_hostname = <...>
file_id = <...>
url = "https://" + saymon_hostname + "/node/api/files/66ba293f8244cc1c4b35ffb8"

urllib.request.urlretrieve("http://"+ saymon_hostname +"/node/api/files/" + file_id + "?auth-token=" + api_token, 'image.png')

Результат

Файл image.png сохраняется в директорию, из которой была выполнена команда или скрипт.

Получить файл как JSON

Этот пример возвращает файл с указанным ID как JSON-объект, который содержит имя файла и данные в формате base64-строки.

Запрос

  • Bash

  • JavaScript

  • NodeJS

  • Python

login=<...>
password=<...>
saymon_hostname=<...>
file_id=<...>
url=https://$saymon_hostname/node/api/files/$file_id?json

curl -X GET $url -u $login:$password
let login = <...>
let password = <...>
let saymonHostname = <...>
let fileId = <...>
let path = "/node/api/files/" + fileId + "?json";
let auth = "Basic " + btoa(login + ":" + password);

let headers = new Headers();
headers.append("Authorization", auth);

let requestOptions = {
    method: "GET",
    headers: headers
};

fetch(saymonHostname + path, requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log("error", error));
const http = require("http");

let login = <...>
let password = <...>
let saymonHostname = <...>
let fileId = <...>
let path = "/node/api/files/" + fileId + "?json";
let auth = "Basic " + Buffer.from(login + ":" + password).toString("base64");

let options = {
    "method": "GET",
    "hostname": saymonHostname,
    "headers": {
        "Authorization": auth
    },
    "path": path
};

let req = http.request(options, function (res) {
    let chunks = [];

    res.on("data", function (chunk) {
        chunks.push(chunk);
    });

    res.on("end", function (chunk) {
        let body = Buffer.concat(chunks);
        console.log(body.toString());
    });

    res.on("error", function (error) {
        console.error(error);
    });
});

req.end();
import requests

login = <...>
password = <...>
saymon_hostname = <...>
file_id = <...>
url = "https://" + saymon_hostname + "/node/api/files/" + file_id + "?json"

response = requests.request("GET", url, auth=(login, password))
print(response.text)

Ответ

{
  "name": "image-file.png",
  "data": "data:image/png;base64,iVBORw..."
}