用计算md5的方法砍掉伪需求

举报
zhaoolee 发表于 2021/08/27 17:36:40 2021/08/27
【摘要】 title: 用计算md5的方法砍掉伪需求我的个人网站v2fy.com 由WordPress搭建,为了更便捷的管理网站内容,我将每篇文章存储到独立的markdown文件中,并写了个脚本,将存储在每个markdown文件的独立文件,通过api,依次同步到个人网站,但随着文章数量的增多,同步的时间也越来越长。为了解决这个问题,我为每个文件内容计算一个md5值,md5值与文件绑定,存到本地文件里...

title: 用计算md5的方法砍掉伪需求

我的个人网站v2fy.com 由WordPress搭建,为了更便捷的管理网站内容,我将每篇文章存储到独立的markdown文件中,并写了个脚本,将存储在每个markdown文件的独立文件,通过api,依次同步到个人网站,但随着文章数量的增多,同步的时间也越来越长。

为了解决这个问题,我为每个文件内容计算一个md5值,md5值与文件绑定,存到本地文件里,当内容发生变化时,md5值也发生变化,每次同步,重新计算md5值, 与旧md5值进行对比, 进而确定文章是否需要同步,一个小改进,让同步时间大大缩短。

md5

以下是Node.JS计算文件md5的代码

const crypto = require('crypto');
const fs = require('fs');

async function cal_md_file_md5(file_path) {

    const md5 = await new Promise((resolve, reject)=>{
        const stream = fs.createReadStream(file_path);
        const hash = crypto.createHash('md5');
    
        stream.on('data', chunk => {
            hash.update(chunk, 'utf8');
        });
    
        stream.on('end', () => {
            const md5 = hash.digest('hex');
            console.log(file_path, md5);
            resolve(md5);
        });
    })
    return md5;
}

完整代码开源地址: https://github.com/zhaoolee/jikemiji

最近,工作中接收到很多紧急需求,但大多是伪需求,根本不需要代码去实现,经过一波讨论,需求少了很多,识别伪需求的方法和计算文件md5值的思想类似,真正需要的做的事, 往往是引发需求的源产生了变化, 如果源没有变,提出的需求,大概率是伪需求,可以尽可能砍掉。

本文永久更新地址(欢迎来读留言,写评论):

https://www.v2fy.com/p/2021-08-06-md5-1628249145000

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。