介绍
在开发前端应用中,经常需要上传文件。为了保证数据的安全性,很多应用会使用 hash 防止上传的文件被篡改。但是,因为要用 hash 来验证文件的完整性,上传的文件名变得不再可读,给查找和管理带来了很大的困难。
unhash-upload 这个 npm 包的主要作用就是对上传的文件进行 hash 处理,再将其命名为可读的文件名。这样,就可以兼顾数据的安全性和文件的易查找和管理。
安装
使用 npm 进行安装:
npm install unhash-upload --save
示例代码
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------ - ------------------ ----- ------------ - ------------------------- ----- --- - ---------- -- -- ------------ --- ------------------------ -- -- ------ ------- ------------------- ------------- ---------------------------- ----- ---- -- - -- --------- ----- ---- - --------- -- ---------- --------------- --- ---------------- -- -- ---------------- ------- -- ---- --------
使用方法
- 安装 unhash-upload
npm install unhash-upload --save
- 在应用中使用 unhash-upload 中间件
const unhashUpload = require('unhash-upload'); app.use(unhashUpload());
- 使用 multer 中间件上传文件
-- -------------------- ---- ------- ----- ------ - ------------------ ------------------- ------------- ---------------------------- ----- ---- -- - -- --------- ----- ---- - --------- -- ------ -- --- -- ---------- --------------- ---
参数说明
unhash-upload 可以传入一些参数来进行配置,具体如下:
secret
类型:
string
备注:用于生成 hash 的密钥。默认为空字符串。
unhashUpload({ secret: 'my-secret-key' })
filename
类型:
Function
备注:自定义生成的文件名。
unhashUpload({ filename: (req, file, cb) => { const timestamp = Date.now(); const hash = 'my-custom-hash'; const extname = path.extname(file.originalname); cb(null, `${timestamp}_${hash}${extname}`); } })
结语
unhash-upload 是一款非常方便的 npm 包,可以帮助我们在保证数据完整性的同时,还能方便地查找和管理上传的文件。希望本篇文章对大家学习前端开发有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005603681e8991b448de657