General files (custom)

Overview

Provides access to an exchange catalog with arbitrary media files.

The directory is located in the category of automatically synchronized directories :SYNC.

The composition of the files used is arbitrary. Initially empty. Can be used in scenarios across different domains because the files are synchronized across all servers and actually reside locally on each server. Can be used in both write and read scenarios.
The catalog is accessed from scripts using the catalog category prefix ":SYNC_COMMON/custom".

Requests

HTTP verb Endpoint Description

POST

/rest/v1/fs/targets/custom

Pouring a group of files

GET

/rest/v1/fs/targets/custom

Getting a list of files

GET

/rest/v1/fs/targets/custom/<filename>

File download

PUT

/rest/v1/fs/targets/custom/<filename>

Reloading an existing file

DELETE

/rest/v1/fs/targets/custom/<filename>

Deleting a file

HEAD

/rest/v1/fs/targets/custom/<filename>

Getting meta-information about a file


Pouring a group of files

Uploading to the collection is done by Content-Type: multipart/formdata.

There can be one or more files in the request. The files are placed under the names specified in the Content-Disposition headers of each part.

If a file with the specified name already exists, it is not saved and returns an error. Depending on the Content-Type and the presence of successfully placed files, the request may return a failed HTTP response, or failure information in the body of the HTTP response 200 OK.

Request

Request example
POST /rest/v1/fs/targets/custom HTTP/1.1
Content-Type: multipart/form-data; boundary=-----------boundary_69df8120352a996e

-----------boundary_69df8120352a996e
Content-Type: application/octet-stream
Content-Disposition: form-data; name="filename"; filename="package.bin"
Content-Transfer-Encoding: binary

BINARY BODY OF 'package.bin'
-----------boundary_69df8120352a996e--

Response

Response example
[
  {
    "name": "Package.bin",
    "size": 12268,
    "status": "ok"
  },
  {
    "name": "F.zip",
    "size": 8411,
    "status": "ok"
  }
]

Getting a list of files

Request

Table 1. Request parameters
Name Type Description

filter

object

Filter by field values.

mask

str

List of fields to output. Available fields for output: name, size, last_modified.

offset

int

Offset in the list of files to be issued.

limit

int

Maximum number of files in the list.

order

array<object|str>

The sort order of the files in the list.

Request example
GET /rest/v1/fs/targets/custom HTTP/1.1

Response

Response example
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

[
  {
    "name": "Package.bin",
    "size": 12268,
    "last_modified": "2019-10-02 15:22:03"
  },
  {
    "name": "F.zip",
    "size": 8411,
    "last_modified": "2019-10-02 15:22:05"
  }
]

File download

Request

Table 2. Request parameters
Name Type Description

attachment

bool

Issuance Type. Default false.

true – is output with the header Content-Disposition: attachment; filename=filename.ext or Content-Disposition: attachment; filename*=UTF-8''%d1%84%d0%b0%d0%b9%d0%bb.ext, where file.ext is the file name in UTF-8 encoding and URLencoded.

false – untitled Content-Disposition.

Request example
GET /rest/v1/fs/targets/custom/package.bin?attachment=true HTTP/1.1

Response

Response example
HTTP/1.1 200 OK
Content-Type: application/octet-stream; charset=utf-8
Content-Disposition: attachment; filename*=UTF-8''package.bin

BINARY BODY OF 'package.bin'

Reloading an existing file

Performs a file replacement.

A single file is uploaded either with Content-Type: multipart/formdata, or with an arbitrary Content-Type that is not multipart.

If the download is done with Content-Type: multipart/formdata, then only the first file will be saved (the first part with the filename field in the header) Content-Disposition), and the file name itself will be ignored.

Request

Request example (octet-stream)
PUT /rest/v1/fs/targets/custom/package.bin HTTP/1.1
Content-Type: application/octet-stream

BINARY BODY OF 'package.bin'
Request example (multipart)
PUT /rest/v1/fs/targets/custom/package.bin HTTP/1.1
Content-Type: multipart/form-data; boundary=-----------boundary_69df8120352a996e

-----------boundary_69df8120352a996e
Content-Type: application/octet-stream
Content-Disposition: form-data; name="package.bin"; filename="package.bin"
Content-Transfer-Encoding: binary

BINARY BODY OF 'package.bin'
-----------boundary_69df8120352a996e--

Response

Response example
HTTP/1.1 204 No Content

Deleting a file

Request

Request example
DELETE /rest/v1/fs/targets/custom/package.bin HTTP/1.1

Response

Response example
HTTP/1.1 204 No Content

Getting meta-information about a file

Returns meta-information about the file, including the size in the header Content-Length.

Features

  • HTTP-the response does not contain a body, despite the presence of a header Content-Length.

Request

Table 3. Request parameters
Name Type Description

attachment

bool

Issuance Type. Default false.

true – is output with the header Content-Disposition: attachment; filename=filename.ext or Content-Disposition: attachment; filename*=UTF-8''%d1%84%d0%b0%d0%b9%d0%bb.ext, where file.ext is the file name in UTF-8 encoding and URLencoded.

false – untitled Content-Disposition.

Request example
HEAD /rest/v1/fs/targets/custom/package.bin?attachment=true HTTP/1.1

Response

Example of a successful response
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Last-Modified: Fri, 20 Sep 2019 10:30:43 GMT
Content-Disposition: attachment; filename=package.bin
Content-Length: 12268
Example of an unsuccessful response
HTTP/1.1 404 Not Found