Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

几个疑问: 资源存到civet里,实际位置还是原来的位置? 没有类似billfish那样的目录结构吗?没有拷贝模式和链接模式吗? #23

Open
iamqiz opened this issue Oct 30, 2022 · 6 comments
Labels
enhancement New feature or request
Projects

Comments

@iamqiz
Copy link

iamqiz commented Oct 30, 2022

如果结构信息只存在于数据库,那么管理资源就只能使用civet, 而不能使用window资源管理器了, 那就很局限了

@webbery
Copy link
Owner

webbery commented Oct 30, 2022

结构信息存于数据库里头,对原有的结构不做改变。
因为不同的用户需求可能不一样。有的磁盘空间小,不希望再复制一份;有的可能希望存在NAS上;有的可能存在云盘;也有的可能希望通过快捷方式的链接来保持目录结构。
所以我的一个考虑是把这块设计成插件的形式,按需使用

@iamqiz
Copy link
Author

iamqiz commented Oct 30, 2022

对了,忘了说billfish还有一种模式叫移动模式,就是把资源从原来的地方移动到素材库中,
链接模式不会占用太多磁盘空间(因为是快捷方式的形式)
目录结构实际存在,还能防止数据库损坏导致资源整理前功尽弃
这种模式应该得有,供用户自行选择

还有一个疑问: 现在的模式下,资源如果被外部工具移动了位置,或者改名了, civet还能找到吗?

@webbery
Copy link
Owner

webbery commented Oct 31, 2022

对了,忘了说billfish还有一种模式叫移动模式,就是把资源从原来的地方移动到素材库中, 链接模式不会占用太多磁盘空间(因为是快捷方式的形式) 目录结构实际存在,还能防止数据库损坏导致资源整理前功尽弃 这种模式应该得有,供用户自行选择

快捷方式这个之前调研过,实现上不难。

但是这种方式有一些问题,就像你下边的提问,如果被外部工具移动了,快捷方式也会出现找不到的情况。在linux下,这种方式还分为软链接和硬链接,软链接跟windows的快捷方式类似,源资源移动了位置,就会找不到;而硬链接会给资源创建一个新的
引用节点,移动和修改都不会产生影响,但是这种方式不能跨磁盘。

mac也是linux内核,所以上面描述的软链接和硬链接的问题应该也是存在的,只是我没有环境验证

还有一个疑问: 现在的模式下,资源如果被外部工具移动了位置,或者改名了, civet还能找到吗?

目前都是根据完整路径来找文件,所以修改了名字或者位置会找不到。

如果只是本地存储的话,你有什么好的想法吗?

@iamqiz
Copy link
Author

iamqiz commented Oct 31, 2022

在window上给文件创建快捷方式之后,原文件改名和(或)移动之后,快捷方式不会失效,这得益于windows[分布式链接跟踪] 技术,也支持跨磁盘移动,
分布式链接跟踪和对象标识符 - Win32 apps | Microsoft Docs
https://docs.microsoft.com/zh-cn/windows/win32/fileio/distributed-link-tracking-and-object-identifiers?redirectedfrom=MSDN
Shell 链接 - Win32 apps | Microsoft Docs
https://docs.microsoft.com/zh-cn/windows/win32/shell/links

window平台的话,我觉得要想追踪文件的变动的话,要么通过快捷方式链接原文件,要么是将资源限制在某个资源库目录下, billfish就是这么干的, 好处多多,
linux上软连接确实不能移动文件, 硬链接我没试 ,不能跨磁盘,这个就难受了

@webbery
Copy link
Owner

webbery commented Nov 1, 2022

Window这个链接追踪的解决方案很好~
linux环境的话,我觉得可以使用硬链接。如果因为跨磁盘导致创建硬链接失败的话,可以创建软链接。如果这个软链接的资源只是被挪动了,还可以使用locate这个命令来查找,关联回来;但是如果改名了,也不好找

@webbery
Copy link
Owner

webbery commented Jan 30, 2023

添加windows shell link: webbery/civetkern@3044643

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
0.4.0
Awaiting triage
Development

No branches or pull requests

2 participants