微信照片每分享一次就要占一次空间?

2022-09-28 01:52:24 +08:00
 Zien
https://m.weibo.cn/status/4818338141701851
我知道鹅厂拉垮地都不想评论,但是这个也太那啥了吧?
4701 次点击
所在节点    程序员
32 条回复
agagega
2022-09-28 02:00:18 +08:00
如果仅仅是复制而没有其他压缩等操作的话,那 iOS 的 APFS 是写时复制的,所以只会存一份。
Zien
2022-09-28 02:03:43 +08:00
@agagega 肯定进行了其他操作了,感觉可能和监控有关,譬如用设备唯一标识码等来加密或者直接打包进压缩包,所以不能或者懒得去对比文件?不知道有没有大佬分析一下。
dcty
2022-09-28 02:16:29 +08:00
可能是为了偷懒,减少处理文件相关的逻辑。

说个我遇到的场景:

APP 提供相册上传功能,因为图片或者视频相对较大,上传需要一定的时间,所以会采用异步(不阻塞界面操作)

然后,然后有些用户有时候会以为图片都已经传到云端了,然后就去相册把图片删了。(先忽略 UI 上如何告知用户你还不能删图片,否则会上传失败)

过几天用户发现云端居然少了图片,产品收到反馈后,要求开发把用户选中的内容先存一份到沙盒,成功再删除沙盒的原片。(先忽略选中的资源复制后本机空间不足的场景)
chenjiangui998
2022-09-28 02:20:41 +08:00
@agagega APFS 只有在 clone 操作才有这个特性, 微信分享调用的 API 是 create file, 所以是没有的, 分享一次就是一份
terence4444
2022-09-28 03:07:17 +08:00
个人推测,两种可能。
一是为了方便偷懒;二是为了监控文件去向。
eason1874
2022-09-28 04:26:11 +08:00
典型的以空间换时间

转发一次就存一份的话,删除的时候只要根据消息对应附件 ID 删除就可以了,省事,但是占用空间

反过来,如果不想每次都存,转发的时候就得建立文件关系,每条附件消息在删除的时候都要判断有没有被其他消息关联,没有才可以删,有就不能删。这样省空间,但是麻烦,要额外维护一个关系表

聋哥的内心想法应该是这样的:存多几份怎么了?不会吧,不会有人买不起 512GB 的手机吧?
soo2
2022-09-28 06:07:29 +08:00
@Zien 但在 b 站上看到这些多出来的文件的哈希值是一样的。http://b23.tv/YlK6g0v
ladypxy
2022-09-28 06:34:18 +08:00
不光是照片,连表情都是发一次保存一份……奇葩的要死
cwcauc
2022-09-28 07:29:42 +08:00
@agagega 清理聊天记录文件时候,把发给 A 的一个文件删了,发给 B 的同一个文件还是在的。
Ashore
2022-09-28 08:17:46 +08:00
xtinput
2022-09-28 08:36:57 +08:00
@cwcauc APFS 文件存储系统特性,系统层的策略,只有编辑才会占用两份空间,不编辑占用的空间是同一份,只是两个索引
xtinput
2022-09-28 08:38:14 +08:00
@cwcauc 两份文件的 inode 是同样的
fuxinya
2022-09-28 08:45:36 +08:00
日常没🐴
d0m2o08
2022-09-28 08:49:54 +08:00
张小聋__
iold
2022-09-28 09:00:46 +08:00
司马龙:?
mscsky
2022-09-28 09:14:47 +08:00
完全就是摆烂罢了,以前的 pc 端接收所有文件是放一个文件夹,现在是按日期放,但发送文件还是会下载一份。。
Latin
2022-09-28 09:31:21 +08:00
张小聋:大家又在教我做产品?
dongtingyue
2022-09-28 09:46:14 +08:00
使用者开发者角度不同
duojiao
2022-09-28 09:58:56 +08:00
小龙又再一次无码了?
lyz1990
2022-09-28 10:02:15 +08:00
站在码农角度来看,我也会这么干,这样实现起来简单啊😂

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

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

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

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

© 2021 V2EX