Перейти к основному содержимому
Версия: 1.21.3

Рекомендации по вложениям

Копирование вложений


Для копирования вложений используйте серверные скрипты. Это можно сделать одним из двух способов:

  • Используйте объект base64 исходного вложения. В силу специфики работы метода readBase64, размер копируемого файла ограничен 10 Мб.
Пример
const attachmentRec = new SimpleRecord('sys_attachment');
attachmentRec.get('167654133500015741');
ss.info(`Original size bytes: ${attachmentRec.size_bytes}`);
// Info: Original size bytes: 92414492

const attach = new SimpleAttachment();
const base64Value = attach.readBase64(attachmentRec.sys_id);

const attachCopyId = attach.writeBase64(
attachmentRec.record_document_id,
'copy_of_' + attachmentRec.file_name,
base64Value,
attachmentRec.mime_content_type
);
if (attachCopyId) {
attachmentRec.get(attachCopyId);
ss.info(`/record/sys_attachment/${attachCopyId}`);
// Info: /record/sys_attachment/167654428100399185
ss.info(`Copy size bytes: ${attachmentRec.size_bytes}`);
// Info: Copy size bytes: 0
}
  • Используйте класс SimpleAttachmentervice. Максимальный размер копируемого файла определяется ограничением экземпляра на размер загружаемого вложения, которое задается системным свойством max_file_size_upload.
Пример
const attachmentRec = new SimpleRecord('sys_attachment');
attachmentRec.get('167654133500015741');
ss.info(`Original size bytes: ${attachmentRec.size_bytes}`);
// Info: Original size bytes: 92414492

const importSource = new SimpleRecord('sys_import_source');
importSource.get('167647710807446665'); // From Incident Import Source
const docId = ss.getDocIdByIds(importSource.sys_db_table_id, importSource.sys_id);

const attach = new SimpleAttachment();
const attachUrl = attach.getAttachmentUrlById(attachmentRec.sys_id);
const simpleAttach = new SimpleAttachmentService();
const docID = ss.getDocIdByIds(importSource.sys_db_table_id, importSource.sys_id);
const attachCopyId = simpleAttach.createAttachmentByUrl(attachUrl, docId, `Copy_of_the_${attachmentRec.file_name}`);

if (attachCopyId) {
attachmentRec.get(attachCopyId);
ss.info(`/record/sys_attachment/${attachCopyId}`);
// Info: /record/sys_attachment/167654472004676912
ss.info(`Copy size bytes: ${attachmentRec.size_bytes}`);
// Info: Copy size bytes: 92414492
}

Ссылка скачивания вложения


Ссылки на вложения могут использоваться для различных целей:

  • скачивание одного файла из вложений.
  • скачивания всех файлов из вложений в виде архива.
  • использование ссылки на файл из вложений в HTML-тегах.

Помимо этого ссылки можно также использовать, чтобы:

  • добавлять изображения в тело поля HTML.
  • добавлять изображения в виджет, задав значение атрибута scr.

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

  • Ссылки на общедоступные вложения не имеют срока действия.
  • Непубличные вложения по умолчанию имеют срок в 1 час с момента их создания. Время жизни ссылки определяется системным свойством s3.presigned.link.lifetime.

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

Чтобы скачать вложения, войдите в систему и используйте относительную ссылку /attachments/${sys_attachment.sys_id}. Вы также можете воспользоваться методом getAttachmentUrlById(attachmentId), чтобы сформировать ссылку через API. Чтобы узнать больше, обратитесь к статье SimpleAttachments.

примечание

В зависимости от публичности вложения, могут быть созданы две ссылки:

  • для непубличных вложений: https://s3-{your-instance-url}/attachment/9/b7/prp5bikeyg70mpn7mhfszi4amgzleo?response-content-disposition=inline%3B_filename%3D%22image.png...
  • для публичных вложений: https://s3-{your-instance-url}/public-attachment/9/b7/prp5bikeyg70mpn7mhfszi4amgzleo?response-content-disposition=inline%3B_filename%3D%22image.png...