微信文件存储,技术大牛的你应该如何解决问题?

2023-03-07 08:01:49 +08:00
 leaves615
最近一段时间看新闻,很多针对微信传输的文件在各平台存储的问题上有过针对性的批评。主要集中在以下两点。
1. 本地文件在多次转发后会复制多份存储,没转发一次就会创建一个副本。导致微信本地文件占用空间越来越大,几十个 G 甚至更多。
2. 微信把本地文件设置为只读权限,影响了直接打开编辑,导致非常的不方便。

v's:如果是你来负责微信的本地存储功能,你会如果解决这个问题呢?让体验达到最优。
5244 次点击
所在节点    问与答
37 条回复
zhaokun
2023-03-07 08:06:27 +08:00
禁止发图片文件!
yhm2046
2023-03-07 08:06:55 +08:00
为什么要保存在本地? qq,电报,whatapp 都怎么做的跟着抄不行?
murmur
2023-03-07 08:07:58 +08:00
为什么要解决问题,微信这个体量还有什么好改的么,不留几个陈年老坑不改难道程序员全裁掉?
Eytoyes
2023-03-07 08:09:18 +08:00
发送后删除本地文件做成选项,矛盾成功转移
totoro625
2023-03-07 08:11:50 +08:00
微信会员,10 元 /月,漫游 3 个月聊天记录
微信超级会员,25/月,漫游 1 年聊天记录
微信尊享会员,55/月,漫游 3 年聊天记录
微信至尊会员,95/月,漫游 10 年聊天记录

不开会员的天天弹窗让你删除本地文件,回收本地空间,让你不小心点错清空聊天记录,倒逼你开会员
aaniao002
2023-03-07 08:13:59 +08:00
以用户感受为主,点了下载的那才叫本地储存,其他的叫临时文件。
leaves615
2023-03-07 08:16:59 +08:00
@yhm2046 qq ,telegram ,wahtapp 都是本地缓存的,app 现在的人均带宽情况下,还做不到全部云端。
Building
2023-03-07 08:21:12 +08:00
你自己需要的需求: a && b
实际上的业务需求: a && b && c && d && (e || f || g) && ((h && i) || (j && k)) && l && n && m…
cpstar
2023-03-07 08:21:13 +08:00
@Eytoyes 4# 已经转移了,请取消勾选保留聊天记录
Bingchunmoli
2023-03-07 08:29:15 +08:00
@leaves615 其实是全云端,只是同步做不做而已
Eytoyes
2023-03-07 08:42:03 +08:00
@cpstar #8 没想到吧,默认就是不勾选。我再把默认不勾选也做成选项,矛盾再次成功转移
litguy
2023-03-07 08:45:59 +08:00
本地文件存储的多份问题,不需要大牛
只需要每个文件有个 引用计数
转发一次,新的消息进来本地查重(例如基于 SHA1/MD5 这些,本地对文件在 sqlite 里面有个表,除了存储路径,还有对应的 SHA1/MD5 值),引用计数 + 1 就行了,不需要再次存储数据,新的消息指向唯一的文件路径就可以读取文件显示了
这个存储的标准用法至少存在了 20 年了
只是微信设计的奇葩而已
不是大牛,存储软件研发十多年的普通工程师路过
JohnH
2023-03-07 08:49:44 +08:00
咱们可以从设计反推需求,分析如下:

1.几年前我从桌面编辑完某文档后,通过拖拽发送给对方,随后就删除了。等我想再确认一下当时发送的内容时,发现文件已被清理。而现在的逻辑是只要产生文件发 /收,就会把文件副本到微信消息目录。
需求:(普通)用户多次反馈发送的文件找不到了
至于相同内容多副本的,不知道是不想做还是就没想这块的设计
2.这个场景更容易想,某些企业,会发送报名表、申请表、xx 单子等等,用户都习惯于打开后就地修改,导致原始文件被改得面目全非。
为了避免发送多次,干脆一刀切,全部只读。以后“教会”用户学会另存到本地修改。
bluetree2039
2023-03-07 09:03:07 +08:00
@JohnH 我确实碰到这样的情况。原始文件找不到了
Mithril
2023-03-07 09:03:31 +08:00
说是这么说,不过你要是问 “刚入职,发现公司做的产品本地文件在多次转发后会复制多份存储,而且都设置为只读,要如何改进解决这个问题?”

大家肯定有一个算一个都回答你:能用吗?能用就不要改。

那你猜去腾讯的会不会这么想。。。
br00k
2023-03-07 09:14:35 +08:00
第一个问题,文件系统是可以解决的。苹果的 APFS 相同文件不会重复占用空间。
Rennen
2023-03-07 09:16:22 +08:00
@leaves615 tg 确实就是全部云存储,只要号不删,所有聊天记录就会一直在,甚至有人还拿 TG 当网盘。WhatsApp 我记得好像可以同步 google drive
leaves615
2023-03-07 09:16:26 +08:00
@Bingchunmoli 微信号称服务器端不存用户数据的。
leaves615
2023-03-07 09:18:57 +08:00
@br00k Apple 系不管是桌面系统还是手机系统占比都不高的。都是次主要系统。apfs 不能代表全部。
fatekey
2023-03-07 09:46:27 +08:00
直接抄 QQ ,文件方面 QQ 虽然也有不少槽点但是比微信强多了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/921772

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX