Вложенный файл, тип свойства 'attachment' (на примере класса 'abc/mnesia' и свойства 'patt')
Обзор
Позволяет приложить к сущности файл-вложение с размещением на диске в преднастроенном хранилище, связанным с коллекцией класса.
И в дальнейшем производить операции чтения, замены, удаления вложения.
Каждое свойство типа `attachment` формирует в REST-API отдельный endpoint этого типа.
Файл после загрузки теряет имя и расширение, и доступен к скачиванию с потерей этих характеристик под именем `content`.
Допустимо заливать файл с content-type application/octet-stream и multipart/form-data. В последнем случае фактически сохраняется первый из списка файлов.
Реальный путь к вложениям формируется одинаково вне зависимости от типа хранилища:
Для категорий: `…/Domain/ClassName/Id12/Id34/Id56/IdRest/PropertyName`
Для истории: `…/Domain/ClassName/Id12/Id34/Id56/IdRest/PropertyName`
Запросы
HTTP verb | Endpoint | Описание |
---|---|---|
|
|
|
|
|
|
|
|
Скачивание вложения
Запрос
Имя | Тип | Описание |
---|---|---|
|
|
Тип выдачи. По умолчанию
|
GET /rest/v1/model/abc/mnesia/68f99ca9-016c-d352-e02f-50e54938780c/patt HTTP/1.1
Заливка вложения
Производит замену файла.
Загрузка одного файла производится либо с помощью Content-Type: multipart/formdata
,
либо с произвольным Content-Type
не являющимся мультипартом.
Если загрузка происходит с Content-Type: multipart/formdata
,
то будет сохранён только первый файл (первая часть имеющая поле filename в заголовке
Content-Disposition
), а само название файла будет проигнорировано.
Запрос
PUT /rest/v1/model/abc/mnesia/68f99ca9-016c-d352-e02f-50e54938780c/patt HTTP/1.1
Content-Type: application/octet-stream
BINARY BODY OF 'app.mp3'
PUT /rest/v1/model/abc/mnesia/68f99ca9-016c-d352-e02f-50e54938780c/patt HTTP/1.1
Content-Type: multipart/form-data; boundary=-----------boundary_69df8120352a996e
-----------boundary_69df8120352a996e
Content-Type: application/octet-stream
Content-Disposition: form-data; name="abcde"; filename="app.mp3"
Content-Transfer-Encoding: binary
BINARY BODY OF 'app.mp3'
-----------boundary_69df8120352a996e--