在上传文件的同时赋予文件唯一的名称
我正在开发一个应用程序,在其中用户可以张贴图片。 所以我想确保每一次pic得到独一无二的名字。 在PHP中,我使用连接时间戳与userId。 但在node.js我没有得到的方法来将时间戳转换为string。 所以好心的build议一种方法来确保我的文件不重名。
其中一个解决scheme是使用UUID作为文件名。 但是这当然取决于您的应用程序需求或约束(命名约定等)。 但是,如果UUID作为文件名是可以接受的,我推荐使用node-uuid
库(非常容易使用!)。
示例代码:
var uuidv4 = require('uuid/v4'); var filename = uuidv4() + '.png'
使用UUID作为唯一标识符是安全的。 你可以find更多关于这个如UUID有多独特?
替代解决scheme (其中名称唯一性是一个要求)将使用另一个node.js库: flake-idgen根据当前的时间戳生成无冲突ID。 该解决scheme保证唯一的数字
该解决scheme也非常高效,允许每个发生器以毫秒为单位生成4096个ID(最多可以有1024个唯一的生成器)。
我希望这会有所帮助。
在节点中:
timestamp = new Date().getTime().toString();
如果你想使用时间戳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'