桃子:有的,兄弟,有的。 cmd/server/main.go 所有的文件会立即同步到 aliyun 和 r2。 现在的站点服务器文件存储还没有压力(十年来文章才不到6MB,文件才1.5G,还是因为近年大量上传实况照片才有的这个结果),等有压力的时候,我加个选项,一键把 > XXX MB 的文件二进制删掉,只保留上述远程的。 内部在 fs.Open 的时候直接以远程 http.Response 作为数据,无缝迁移&兼容。 #
雨帆:这种设计有好有坏,我个人认为,此类的文件我更愿意放 OSS 之类的 S3 上,然后数据库这里维护元数据。 #
桃子:我靠😧️,你怎么退群了啊。我说怎么突然不能 at 了。 #
桃子:目前3️⃣个数据库,分工非常明确: posts.db 文章、评论 & 配置、文件元数据部分 files.db 只存储文件二进制数据(id,hash) cache.db 存储可在重启后复用的缓存(低频数据) 其它的小缓存、高频使用的都是直接扔内存的。 很久以前的时候,文件都是放硬盘上的。但是,硬盘上的文件基本只有 (name, mod_time, data) 可用,不够。后面还增加保存了图片的 width, height, exif,加密密钥,以及 blur_hash 等,就必须把文件元数据提出来到表里面了。 那就再干脆一点,sqlite 的作者说其 column 存储大二进制完全没问题,那我就一把梭,把文件的数据部分也上了数据库(files.db)。维护起来可方便了。 但是后来发现一个问题:mattn/go-sqlite3 没有提供二进制流接口,大的二进制也只能一次性 scan 出来,并发访问的时候内存飙升。但是不管,每次都从数据库读图片是不对的。所以我回过头来才又加了一层 storage/FileCache,用于第一次访问二进制数据的时候 cache 到临时目录内(定期清理)。这样就从数据库转嫁给了硬盘,同时支持了流也减少了内存占用。 现在备份整站也就是一个命令两个数据库搞定: [代码] #
雨帆:前来围观大佬的编程文章,整体看下来 WASM 的性能上会差一点。你的博客拆分了多个 DB 文件,不清楚这种情况下 WASM 的会不会更慢一些,因为有更多的 file IO。 #
桃子:看,这就是大佬。 #
雨帆:还好吧,我以前在 NEC 写过几个月的 COBOL。本质上就是面向过程的纸带机语言,自然不如现在的高级的语言。 #
桃子:但是它不公开给大家用🥵,不然我也不自己造了。 除了工具按钮不是浮动的外,我感觉我这个还是能用了。好歹自研了。 #
雨帆:使用了一下,我更喜欢 Notion 之类的编辑器对于表格的编辑方式。 #
温格:请问一键安装完账号密码是多少呀 taoblog显示错误 #
another:安装完账号密码taoblog显示错误 #
桃子:之前认真看过 bluge 的代码,感觉有点儿一比一复刻 es/lucene。不过我现在用它也没啥大问题,除中文分词外。但分词其实跟它无关。只是看它不再更新了。 #
雨帆:bluge 的实现还是很棒的。blaze 看了一下代码,其实还有很长的路要走。 #
桃子:我看了网上已有的转换算法,数学计算这方面还是挺复杂的。如果不是把算法意外部署到了端侧,估计还是挺难。 而且,既然现在逆向转换算法已经基本能用,感觉一切加密都是徒劳了。[狗头] #
桃子:隐藏加密算法的实现本来就是一种错误的做法,该隐藏的是密码。 Security through obscurity is an illusion. 我刚刚查了一下,谷歌地图的卫星模式是 2005 年才上线的。2002 年推出 GCJ-02 的时候估计就是想靠混淆坐标系统来保密建筑群。我猜测也是从 2005 年开始这玩意儿就是个名存实亡的东西了,政治作用远大于实际。 #
桃子:有的,兄弟,有的。 cmd/server/main.go 所有的文件会立即同步到 aliyun 和 r2。 现在的站点服务器文件存储还没有压力(十年来文章才不到6MB,文件才1.5G,还是因为近年大量上传实况照片才有的这个结果),等有压力的时候,我加个选项,一键把 > XXX MB 的文件二进制删掉,只保留上述远程的。 内部在 fs.Open 的时候直接以远程 http.Response 作为数据,无缝迁移&兼容。 #
雨帆:这种设计有好有坏,我个人认为,此类的文件我更愿意放 OSS 之类的 S3 上,然后数据库这里维护元数据。 #
桃子:我靠😧️,你怎么退群了啊。我说怎么突然不能 at 了。 #
桃子:目前3️⃣个数据库,分工非常明确: posts.db 文章、评论 & 配置、文件元数据部分 files.db 只存储文件二进制数据(id,hash) cache.db 存储可在重启后复用的缓存(低频数据) 其它的小缓存、高频使用的都是直接扔内存的。 很久以前的时候,文件都是放硬盘上的。但是,硬盘上的文件基本只有 (name, mod_time, data) 可用,不够。后面还增加保存了图片的 width, height, exif,加密密钥,以及 blur_hash 等,就必须把文件元数据提出来到表里面了。 那就再干脆一点,sqlite 的作者说其 column 存储大二进制完全没问题,那我就一把梭,把文件的数据部分也上了数据库(files.db)。维护起来可方便了。 但是后来发现一个问题:mattn/go-sqlite3 没有提供二进制流接口,大的二进制也只能一次性 scan 出来,并发访问的时候内存飙升。但是不管,每次都从数据库读图片是不对的。所以我回过头来才又加了一层 storage/FileCache,用于第一次访问二进制数据的时候 cache 到临时目录内(定期清理)。这样就从数据库转嫁给了硬盘,同时支持了流也减少了内存占用。 现在备份整站也就是一个命令两个数据库搞定: [代码] #
雨帆:前来围观大佬的编程文章,整体看下来 WASM 的性能上会差一点。你的博客拆分了多个 DB 文件,不清楚这种情况下 WASM 的会不会更慢一些,因为有更多的 file IO。 #
桃子:看,这就是大佬。 #
雨帆:还好吧,我以前在 NEC 写过几个月的 COBOL。本质上就是面向过程的纸带机语言,自然不如现在的高级的语言。 #
桃子:但是它不公开给大家用🥵,不然我也不自己造了。 除了工具按钮不是浮动的外,我感觉我这个还是能用了。好歹自研了。 #
雨帆:使用了一下,我更喜欢 Notion 之类的编辑器对于表格的编辑方式。 #
温格:请问一键安装完账号密码是多少呀 taoblog显示错误 #
another:安装完账号密码taoblog显示错误 #
桃子:之前认真看过 bluge 的代码,感觉有点儿一比一复刻 es/lucene。不过我现在用它也没啥大问题,除中文分词外。但分词其实跟它无关。只是看它不再更新了。 #
雨帆:bluge 的实现还是很棒的。blaze 看了一下代码,其实还有很长的路要走。 #
桃子:我看了网上已有的转换算法,数学计算这方面还是挺复杂的。如果不是把算法意外部署到了端侧,估计还是挺难。 而且,既然现在逆向转换算法已经基本能用,感觉一切加密都是徒劳了。[狗头] #
桃子:隐藏加密算法的实现本来就是一种错误的做法,该隐藏的是密码。 Security through obscurity is an illusion. 我刚刚查了一下,谷歌地图的卫星模式是 2005 年才上线的。2002 年推出 GCJ-02 的时候估计就是想靠混淆坐标系统来保密建筑群。我猜测也是从 2005 年开始这玩意儿就是个名存实亡的东西了,政治作用远大于实际。 #