Прямо сейчас, когда файл уже существует, я добавил к имени файла префикс, который является меткой времени, чтобы сделать его уникальным.
Но вместо использования метки времени я хочу использовать порядковый суффикс или добавить число к имени файла.
Я бы добавил увеличенное число к имени файла, если файл существует. Но не могу полностью понять, как это сделать правильно.
Использование временной метки работает, но она слишком длинная, как, например, когда мы отображаем имя файла, это было бы, например, поэтому вместо использования временной метки я просто хотите увеличить число до имени файла.
Hellworldfilename - 1593024232
- метка времени слишком длинная, плохая идея.
Она должна быть основана на существующих записях в базе данных. Если, например, я добавляю файл с именем файла Hellworldfilename, и он уже существует, тогда новое имя файла будет Hellworldfilename-1, а если я снова добавлю Hellworldfilename, новое имя файла будет Hellworldfilename-2 и так далее и тому подобное. Есть идеи, как сделать имя файла каждый раз уникальным?
Позвольте мне привести пример. скажем, у меня есть 3 файла в базе данных с именем
DOC
DOC-1
DOC-2
Если я добавлю файл с именем DO C, новое имя файла будет теперь DO C -3.
# Код для проверки наличия файла
const file = await context.service.Model.findOne({
where: { humanId: record.id, filename: data.filename },
paranoid: false,
});
if (file) {
const prefix = Date.now().toString();
// eslint-disable-next-line no-undef
const fileParts = data.filename.split('.');
filename = `${fileParts[0]}-${prefix}.${fileParts[1]}`;