Type parameters
Hierarchy
Properties
Readonly code
Код приложения цели ссылки (код приложения).
Readonly data
Значения полей объекта.
Readonly fields
Описание полей объекта.
Readonly id
Идентификатор цели ссылки.
Readonly namespace
Пространство имен цели ссылки (код раздела приложения).
Methods
addVersion
-
Метод FileItem.addVersion создает новую версию файла.
Метод позволяет обновить содержимое файла на диске, не создавая новый файл. Созданная версия попадает в историю файла. Метод необходимо использовать, когда тело файла может быть получено из разных источников или сгенерировано при выполнении сценария. Поле
comment
служит описанием добавляемой версии.В примере показано, как можно добавить версию файла после загрузки с внешнего ресурса. В качестве коментария можно указать, что файл получен с внешнего ресурса. Контекст содержит:
downloadUrl
— строка, хранящая URL для загрузки файла;newName
— новое название файла;file
— файл, хранящийся на диске.
const fileResponse = await fetch(Context.data.downloadUrl); const fileContent = await fileResponse.arrayBuffer(); const newName = Context.data.fileName; await Context.data.file.addVersion(newName, fileContent, 'Файл загружен с внешнего ресурса');
Parameters
-
name: string
Новое имя файла.
-
body: ArrayBuffer
Тело файла.
-
Optional comment: undefined | string
Комментарий для новой версии.
Returns Promise<void>
addVersionFromLink
-
Метод FileItem.addVersionFromLink создает версию, загружая файл по ссылке.
Сокращенная версия метода FileItem.addVersion использует ссылку загрузки для создания новой версии файла. С помощью ссылки загружается содержимое файла. Оно используется для создания новой версии. При использовании метода можно указать комментарий к добавляемой версии файла.
В примере показано, как можно добавить версию файла, используя ссылку для загрузки. Контекст содержит:
downloadUrl
— строка, хранящая URL для загрузки файла;newName
— новое название файла;file
— файл, хранящийся на диске.
const newName = Context.data.fileName; await Context.data.file.addVersionFromLink(newName, Context.data.downloadUrl);
Parameters
-
name: string
Новое имя файла.
-
url: string
Публичная ссылка на файл.
-
Optional comment: undefined | string
Комментарий для новой версии.
Returns Promise<void>
delete
-
Удаление файла.
Метод позволяет перемещать текущий файл в корзину для удаления.
// Пример удаления всех файлов, созданных пользователем (some user_id); const userID = '1a8286d3-a222-4b8b-a860-84f6505a708a'; const searchFiles = await System.files.search(). where(file => file.__createdBy.eq(userID)). all(); for (let i = 0; i < searchFiles.length; i += 1) { await searchFiles[i].delete(); }
Returns Promise<void>
fetch
-
Запрос полных данных объекта-ссылки.
Returns Promise<FileItem>
getDownloadUrl
-
Метод FileItem.getDownloadUrl получает ссылку на загрузку содержимого файла.
Полученная ссылка возвращает содержимое файла. По такой ссылке загрузку могут выполнить все пользователи, в том числе и анонимные. Ссылка на загрузку доступна в течение одного часа. Тип вложения может быть
attachment
илиinline
. По умолчанию параметрdispositionType
имеет значениеattachment
.const url = await file.getDownloadUrl();
Parameters
-
Optional dispositionType: DispositionType
Returns Promise<string>
-
getFileMD5Hash
-
Метод FileItem.getFileMD5Hash получает md5-хеш файла.
В примере контекст содержит
file
— файл из системы.const hash = await file.getFileMD5Hash();
Returns Promise<string>
getPermissions
-
Метод FileItem.getPermissions получает права доступа к файлу.
После удачного выполнения запроса прав в ответе будет получен объект TPermissions. Полученный объект можно модифицировать или анализировать для различных проверок доступа.
const perm = await file.getPermissions();
Returns Promise<TPermissions>
getVersions
-
Метод FileItem.getVersions получает список версий файла.
В примере показан поиск первой версии файла. Идентификатор файла необходимо получить из контекста. Для получения всех версий используется параметр
offset
. Версии выбираются в порядке убывания порядкового номера, то есть от самой свежей к более старым. Первая версия имеет порядковый номер 1.// Получаем ID файла const fileUUID = Context.data.fileID; if(!fileUUID) { return; } // Ищем файл const file = await System.files.search().where(x => x.__id.eq(fileUUID)).first(); if(!file) { return; } // Получаем все версии файлов. Если версий нет, то возвращаем ошибку let allFileVersions: FileVersionItem[] = []; let verCount = 0; let offset = 0; const limit = 20; do { const versions = await file.getVersions(offset, limit); verCount = versions.length; offset = offset + verCount; allFileVersions.push(...versions); } while (verCount === limit) if(allFileVersions.length === 0) { throw new Error("У файла нет версий"); } const firstVersion = allFileVersions.find(ver => ver.version === 1); // Получаем тело файла const url = await firstVersion.getDownloadUrl(); const content = fetch(url);
Parameters
-
Optional offset: undefined | number
Сдвиг относительно начального поиска. По умолчанию равен 0.
-
Optional limit: undefined | number
Максимальное количество полученных записей. По умолчанию равно 10. Максимальное значение 10000.
Returns Promise<FileVersionItem[]>
-
hasPermission
-
Метод FileItem.hasPermission проверяет наличие права доступа PermissionType.
Метод позволяет легко проверить наличие возможности на выполнение операции PermissionType с файлом. После использования метод вернет флаг о результате. Если значение флага
true
, то пользователь может выполнять запрошенную операцию с файлом. Также можно проверять доступ для элементов оргструктуры.const user = Context.data.__createdBy; const canUpdate = await file.hasPermission(user, PermissionType.UPDATE);
Parameters
-
group: TPermissionOrgunit
Группа или пользователь для проверки.
-
type: PermissionType
Тип операции.
Returns Promise<boolean>
-
move
-
Перемещение файла.
Метод позволяет перемещать файл в указанную директорию.
// Пример: выберем все файлы с форматом doc, docx из директории и перенесем в новую; const directoryID = "0520723d-5e32-4d37-8eca-175853a2ec88"; const searchFiles = await System.files.search(). where(file => file.directory.eq(directoryID)). all(); // Содадим новую директорию; const newDirectory = await System.directories.create("Документы", directoryID); searchFiles!.forEach(async file => { let format = file.data.__name.split('.').reverse()[0]; if (format=='doc' || format=='docx') { await file.move(newDirectory.data.__id); }; });
Parameters
-
directoryID: string
ID директории в которую перемещаем файл. Ожидает uuid директории, в ином случае получим ошибку.
Returns Promise<void>
-
normalize
-
Удаление дублирующихся данных в массивах.
Выполнить удаление дубликатов в полях, в которых хранятся массивы ссылок на объекты системы (пользователи, файлы, элементы приложений, документы).
Этот метод, например, можно вызвать после массового изменения данных в объекте.
const app1 = await Context.data.app1.fetch(); const app2 = await Context.data.app2.fetch(); app1.data.executors.push(app2.data.executors); app1.normalize(); // Далее перебираем элементы нового массива app1.data.executors.forEach( ... );
Returns void
rename
-
Переименование файла.
Метод позволяет изменить имя текущего файла.
// Пример переименования файла используемого в контексте; const fileUUID = Context.data.fileID; if(!fileUUID) { return; } // Ищем файл; const file = await System.files.search().where(x => x.__id.eq(fileUUID)).first(); if(!file) { return; } await file.rename('Новое имя.txt');
Parameters
-
newName: string
Новое имя файла. Передаем имя файла с указанием формата (newName.txt).
Returns Promise<void>
-
setPermissions
-
Метод FileItem.setPermissions устанавливает список прав на файл.
Метод требуется использовать, когда необходимо изменить права на доступ к файлу, добавив или удалив права доступа для пользователя, группы, элемента оргструктуры. Для добавления новых прав доступа необходимо использовать объект TPermissionValue, а для выдачи прав на конкретные операции — PermissionType. После создания нового объекта TPermissions для сохранения новых прав доступа используется метод FileItem.setPermissions.
const user = Context.data.__createdBy; const permissions = new Permissions([ new PermissionValue(user, [PermissionType.DELETE, PermissionType.READ]), ]); await file.setPermissions(perms);
Parameters
-
perms: TPermissions
Новые правила доступа к файлу.
Returns Promise<void>
-
subscribe
-
Метод FileItem.subscribe подписывает пользователей на файл.
Создание подписки на файл позволит пользователям получать оповещения об изменении данных файла созданиях его версий и других событиях.
Parameters
-
Rest ...users: TUser[]
Пользователи для подписки.
Returns Promise<void>
-
unsubscribe
-
Метод FileItem.unsubscribe отписывает пользователей от файла.
Удаление подписки на файл позволяет прекратить получение оповещений об изменении файла.
Parameters
-
Rest ...users: TUser[]
Пользователи для отписки.
Returns Promise<void>
-
Файл
Объект предназначен для работы с файлами, позволяет выполнять операции над файлами, хранимыми на диске: получать ссылки для загрузки, сохранять и получать права доступа, подписываться на изменения и др.