V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Zien
V2EX  ›  程序员

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

  •  
  •   Zien · 125 天前 via iPhone · 3812 次点击
    这是一个创建于 125 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://m.weibo.cn/status/4818338141701851
    我知道鹅厂拉垮地都不想评论,但是这个也太那啥了吧?
    32 条回复    2022-09-28 17:27:14 +08:00
    agagega
        1
    agagega  
       125 天前 via iPhone
    如果仅仅是复制而没有其他压缩等操作的话,那 iOS 的 APFS 是写时复制的,所以只会存一份。
    Zien
        2
    Zien  
    OP
       125 天前 via iPhone
    @agagega 肯定进行了其他操作了,感觉可能和监控有关,譬如用设备唯一标识码等来加密或者直接打包进压缩包,所以不能或者懒得去对比文件?不知道有没有大佬分析一下。
    dcty
        3
    dcty  
       125 天前
    可能是为了偷懒,减少处理文件相关的逻辑。

    说个我遇到的场景:

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

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

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

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

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

    聋哥的内心想法应该是这样的:存多几份怎么了?不会吧,不会有人买不起 512GB 的手机吧?
    soo2
        7
    soo2  
       125 天前 via Android
    @Zien 但在 b 站上看到这些多出来的文件的哈希值是一样的。http://b23.tv/YlK6g0v
    ladypxy
        8
    ladypxy  
       125 天前 via iPhone
    不光是照片,连表情都是发一次保存一份……奇葩的要死
    cwcauc
        9
    cwcauc  
       125 天前 via iPhone
    @agagega 清理聊天记录文件时候,把发给 A 的一个文件删了,发给 B 的同一个文件还是在的。
    Ashore
        10
    Ashore  
       125 天前
    xtinput
        11
    xtinput  
       125 天前
    @cwcauc APFS 文件存储系统特性,系统层的策略,只有编辑才会占用两份空间,不编辑占用的空间是同一份,只是两个索引
    xtinput
        12
    xtinput  
       125 天前
    @cwcauc 两份文件的 inode 是同样的
    fuxinya
        13
    fuxinya  
       125 天前 via Android
    日常没🐴
    d0m2o08
        14
    d0m2o08  
       125 天前
    张小聋__
    iold
        15
    iold  
       125 天前
    司马龙:?
    mscsky
        16
    mscsky  
       125 天前   ❤️ 1
    完全就是摆烂罢了,以前的 pc 端接收所有文件是放一个文件夹,现在是按日期放,但发送文件还是会下载一份。。
    Latin
        17
    Latin  
       125 天前
    张小聋:大家又在教我做产品?
    dongtingyue
        18
    dongtingyue  
       125 天前
    使用者开发者角度不同
    duojiao
        19
    duojiao  
       125 天前
    小龙又再一次无码了?
    lyz1990
        20
    lyz1990  
       125 天前
    站在码农角度来看,我也会这么干,这样实现起来简单啊😂
    nill92234
        21
    nill92234  
       125 天前
    能跑吗?能跑就行啊!有些人连自己写的代码 warming 都没管
    leegradyllljjjj
        22
    leegradyllljjjj  
       125 天前
    张小龙:每天有 1 亿多人教我做微信
    leegradyllljjjj
        23
    leegradyllljjjj  
       125 天前   ❤️ 1
    如果我可以打张小龙一顿,我绝对下狠手。他的发言太欠揍了。我实在是没见过第二个像他这样子的产品人,太欠揍了
    HFX3389
        24
    HFX3389  
       125 天前
    @mscsky #16 现在 PC 微信不是按照聊天 ID 分开存嘛,一个联系人一个文件夹、一个群一个文件夹,然后再根据文件类型和日期存。

    https://img.ithome.com/newsuploadfiles/2022/6/ee29b723-b250-440b-8c30-52ab0ec59804.png

    就像这个图里的
    hullhutt
        25
    hullhutt  
       125 天前
    好笑,劣币驱逐良币
    nothingistrue
        26
    nothingistrue  
       125 天前
    从数据上看,消息中的结构化且不可变的数据,可以设计成内部值对象,也可以设计成外部的关联实体(需要有额外手段将其控制为不可变,以及清理处理)。一般能用值对象就不用关联,但是图片这种重资源,还搞成值对象那真是司马了。
    LZSZ
        27
    LZSZ  
       125 天前
    是的,视频里介绍的是华为的新功能针对这些重复的文件进行瘦身。
    so1n
        28
    so1n  
       125 天前
    每收到一个微信小程序 都会存一个对应的图片
    jxdqwert131
        29
    jxdqwert131  
       125 天前
    微信就是辣鸡
    yulgang
        30
    yulgang  
       124 天前
    啊~呀呀呀呀 呀呀呀呀,洒家想给他一个大臂兜↗啊~
    Jusekenny
        31
    Jusekenny  
       124 天前
    张小龙:你教我做事?
    raycheung
        32
    raycheung  
       124 天前
    求无码张小龙
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   3523 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 03:34 · PVG 11:34 · LAX 19:34 · JFK 22:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.