Я разрабатываю приложение, в котором пользователи могут публиковать фотографии. Поэтому я хочу, чтобы каждый раз, когда pic получает уникальное имя. В PHP я использую для конкатенации метки времени с помощью userId. Но в node.js я не получаю метод для преобразования timestamp в строку. Так что любезно предложите способ гарантировать, что мои файлы не получат повторяющиеся имена.Предоставление уникальных имен файлам при их загрузке
ответ
Одним из решений было бы использовать UUID для имени файла. Но это, конечно, зависит от требований или ограничений приложений (соглашение об именах и т. Д.). Однако, если UUID в качестве имени файла будет приемлемым, я рекомендую использовать библиотеку node-uuid
(очень проста в использовании!).
Пример кода:
var uuidv4 = require('uuid/v4');
var filename = uuidv4() + '.png'
Это безопасно использовать UUID в качестве уникального идентификатора. Вы можете найти больше об этом на SO, например. How unique is UUID?
Альтернативное решение (где имя уникальность является обязательным требованием) будет использовать другую библиотеку Node.js: flake-idgen, который генерирует идентификаторы бесконфликтных на основе текущей временной метки. Это решение гарантирует уникальные номера.
Решение также очень эффективно, позволяет генерировать до 4096 идентификаторов в миллисекунде на генератор (у вас может быть до 1024 уникальных генераторов).
Я надеюсь, что это поможет.
В узле:
timestamp = new Date().getTime().toString();
Это возвращает что-то вроде: '1499264027973' –
Если вы хотите использовать использовать TIMESTAMP UUID в этом
var uuid = require('uuid');
// Generate a v1 (time-based) id
uuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'
// Generate a v4 (random) id
uuid.v4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1'
- 1. Предоставление уникальных имен WPF ControlTemplate child
- 2. Предоставление уникальных случайных имен для скопированных фигур
- 3. Лучший способ генерации уникальных имен файлов при загрузке файлов PHP
- 4. Создание уникальных имен
- 5. Предоставление уникальных идентификаторов всем узлам?
- 6. Предоставление уникальных имен для ведения журналов GDB в скрипте
- 7. auto приращение имен файлов при их загрузке в laravel
- 8. Предоставление уникальных идентификаторов клонированным элементам
- 9. Предоставление уникальных идентификаторов строк MySQL
- 10. Предоставление объектов уникальных идентификаторов onStart
- 11. Изменение имен файлов при загрузке
- 12. Предоставление имен автоматических объектов
- 13. Создание уникальных имен пользователей
- 14. Subset уникальных имен
- 15. Создание уникальных имен
- 16. DropDownListДля получения уникальных имен
- 17. Автоматическое присвоение имен файлам
- 18. Предоставление уникальных идентификаторов во фрагментах при использовании ViewPager FragmentStatePagerAdapter
- 19. Генерация повторяющихся уникальных имен ограничений
- 20. Предоставление уникальных результатов для нескольких клиентов одновременно
- 21. Предоставление доступа к неструктурированным файлам в Hadoop
- 22. Предоставление элемента нескольких имен/id
- 23. Код Behind Манипуляции/Предоставление пользовательских имен переменных/Объединение имен
- 24. Переименовать файлы, увеличивающиеся при их загрузке - PHP
- 25. JQuery - элементы процесса при их загрузке
- 26. Ошибки при загрузке модуля и их обработка
- 27. Предоставление пространства имен в файле javascript при наличии оператора присваивания
- 28. Изменить права доступа к файлам при загрузке файла - PHP?
- 29. R-поиск уникальных имен столбцов фреймов данных
- 30. определить пространство имен по нескольким файлам
Это не дает ответа на вопрос, как получить временную метку в виде строки, но это лучше для создания уникальной имена файлов. – TheHippo
@ TheHippo, это правда, я не предоставил ответ на метку времени конкатенации с идентификатором пользователя. Я сосредоточился на «... предложить способ убедиться, что мои файлы не получают дубликатов имен» - другой подход, который, как вы сказали, лучше альтернативен;) С уважением. – Tom