隔壁老王 发表于 2023-9-20 11:59:38

【F-17608】复制的图片不能删除原文件

本帖最后由 Simon.Sun 于 2023-9-21 15:55 编辑

太坑了


出了一个重大的问题一万多张图片删除了无法恢复

活字格图片删除方案问题严重:dizzy:

比如我在A表里存了图片1然后因为需要我把图片1复制到了B表   (数据复制过去)

昨天不小心忘记了图片会被删除这一说,结果当我清空B表时A表也连不上图片了全部被删除了:funk:

(当然自已也有问题,用的是腾讯云桶没有开启回收箱等功能,啥也没有配置)

这样太不合理了,

我竟然都复制图片字段了,为什么不能给我复制一份文件呢?
我删除文件的时候别的表里还有需要用到这个文件的地方,你为什么就这么果断的给我删除文件呢?

不合理太不合理了,刚入手活字格的时候就吃过这个亏,昨天亏大了:funk::funk::funk:

我建议修改
方法一复制图片和文件字段时自动复制一份文件,当删除一个字段的值时就删除对应的文件
方法二 保持现有的文件连接方式,复制时只复制数据不复制文件,但是删除时要检测数据库中是否存在相同数据,只要有相同数据一条文件就不要删除。


Simon.Sun 发表于 2023-9-20 13:32:43

本帖最后由 Simon.Sun 于 2023-9-21 08:59 编辑

您好,首先感谢您的建议。
目前活字格附件的处理机制是数据库值存储文件名,文件单独存放到磁盘目录上。只有通过数据表操作去删除或更新数据时才会导致原本本地存储附件的变更和删除。
其实您数据同步后,如果想清除数据且不影响到附件的存储的话,可以考虑用执行 SQL 命令,去数据库层面清空数据,这时候是不会影响到本地或云存储上的附件存储的。

隔壁老王 发表于 2023-9-20 15:10:27

道理方法都知道,可就是不小心操作了怎么办

Simon.Sun 发表于 2023-9-20 18:15:37

本帖最后由 Simon.Sun 于 2023-9-28 14:47 编辑

明白大佬意思,只是如果数据表操作命令不删除附件的话,也有额外的问题,比如可能造成附件越来越多的情况。
还是建议大佬做数据表操作时谨慎些,尤其是再做删除操作的时候。

隔壁老王 发表于 2023-9-20 18:41:16

Simon.Sun 发表于 2023-9-20 18:15
明白大佬意思,只是如果数据表操作命令不删除附件的话,也有额外的问题,比如可能造成附件越来越多的情况。 ...

命令可以设为默认不删除文件,需要删除的时候勾选同步删除文件不行么?

Simon.Sun 发表于 2023-9-21 09:11:07

感谢您的反馈,为了更好地记录您的需求,关于这个问题,有一点想在跟您确认一下。
就是您两个表之间数据的复制操作是怎样进行的呢?

如果是通过设置变量名称查询+数据表添加这样的命令去复制的,活字格这边是会重新生成一份附件或图片进行保存的。而且这时候在删除旧表附件的时候,是不影响新表附件的。数据表操作和附件的操作会在逻辑上保持一致的,就是为了避免数据库存储的字段和文件夹存储的文件对不上号的情况。

隔壁老王 发表于 2023-9-21 09:29:59

Simon.Sun 发表于 2023-9-21 09:11
感谢您的反馈,为了更好地记录您的需求,关于这个问题,有一点想在跟您确认一下。
就是您两个表之间数据的 ...

我用的是服务端命令
第一步 通过变量查询A表数据
第二步循环A表数据 通过数据表操作命令 添加数据到B表中
第三步 通过数据表操作命删除B表中ID大于0的记录
结果A表存入的附件全部被删除了

Simon.Sun 发表于 2023-9-21 15:13:53

本帖最后由 Simon.Sun 于 2023-9-21 15:56 编辑

感谢您的反馈。
这边测试了下,如果存储方式是本地存储,像您这样一个表查询,将结果新增到另个表中,如果是附件字段,本地也会复制一份附件,且会生成一个新的 guid,相当于原表和旧表附件数据库存储和本地存储都独立开了,所以删除其中一个表的数据,不会影响到其他表。
但是如果是云存储,上面操作会公用同一个附件,所以删除其中一个表数据,另外一个表的附件也不可用。
这边已经将这个现象反馈了,后续有结果会继续在此贴跟进~


问题跟进:这个问题会作为 Bug 去处理,编号:F-17608。后面云存储也会想本地存储一样,在用数据表操作新增附件数据,且新增的内容来自于其他已经存储的附件,会将原本附件复制一份。这样就不会出现您描述的问题了。感谢您的反馈。

隔壁老王 发表于 2023-9-22 15:58:30

Simon.Sun 发表于 2023-9-21 15:13
感谢您的反馈。
这边测试了下,如果存储方式是本地存储,像您这样一个表查询,将结果新增到另个表中,如果 ...

第一次上传就产生一个GUID
复制到另一个表里就会在原来的GUID前面又加一个GUID
我感觉这样好乱 文件名太长处理起来比比较麻烦,
现在的第一次上传格式是    ***-****-****-****-****_文件名
第二次上传***-****-****-****-****_***-****-****-****-****_文件名
这样一个文件多次使用会产生很长很长的文件名
是不是可以每次复制只修改前面的guid并不是在文件名前再加长呢

Simon.Sun 发表于 2023-9-22 18:30:45

本帖最后由 Simon.Sun 于 2023-9-28 14:47 编辑

您好,如果您是按照一边查询一边新增的情况,是像您说的会重新替换 GUID 的,不会出现文件名越来越长的情况,您可以本地尝试一下。或者您补充下您复制文件的操作步骤,这边调查反馈一下。
页: [1] 2
查看完整版本: 【F-17608】复制的图片不能删除原文件