Giter Site home page Giter Site logo

Comments (7)

allanpk716 avatar allanpk716 commented on June 2, 2024

这部分需要咨询 @devome 是否能协助定位问题。以及环境变量 PERMS 是否设置为 true?或者至少执行过一次后才设置为 false

肯定不会设置复杂的,不然我也不能接受。下面是我的配置。

pic

image

from chinesesubfinder.

devome avatar devome commented on June 2, 2024

chown 1026:100 test只是修改了test这个文件夹的权限,下层文件夹及文件可能并未修正。请使用chown -R 1026:100 /media来遍历(应该是/medita这一层,而不是/media/movie这一层)。或者第一次创建时环境变量PERMS=true,这个脚本会自动处理:

chown -R ${PUID}:${PGID} /media

另外,不要随便给777权限,chinesesubfinder只需要文件夹的755权限(甚至700权限也行)、文件的644权限(甚至600权限也行),当然前提是该文件夹及文件的所有者属于1026:100

from chinesesubfinder.

rozbo avatar rozbo commented on June 2, 2024

@devome 没有加-R是因为这个test是上一步刚建的,里面没有子目录和文件。
环境变量里有PERMS=true,并且怕这个不保险,还在host里手动chown -R 1026:100 /volume2/video 了。
给777是临时测试用的,因为按道理,即便是owner不对,777也应该是有权限的,但系统依然认为没有权限。
并且,直接映射到一级目录 /movie 时,系统也能够检测到权限正常,但映射到 /media/movie就不行。

综上,我个人的看法是在这种情况下,文件是确实存在的,权限也是正确的,但是二级目录就不行,一级目录就识别正确,但是系统也不允许使用一级目录。

from chinesesubfinder.

rozbo avatar rozbo commented on June 2, 2024

这种情况,在我引用的哪个issue里也有多个人提及
image

包括现在这种重复映射将就能使的办法也是从哪里学到的
image

虽然不符合docker的最佳实践,但这种重复映射的办法是目前唯一可行的办法了。。

from chinesesubfinder.

rozbo avatar rozbo commented on June 2, 2024

docker的宿主机也相当重要, 是不是宿主机的内核不一致导致了这种判断方法在不同的nas上有不同的表现?
有没有可能把这里的权限修改下,改成警告而非错误呢,或者放开限制一级目录必须为/media也可以吧。

from chinesesubfinder.

allanpk716 avatar allanpk716 commented on June 2, 2024

docker的宿主机也相当重要, 是不是宿主机的内核不一致导致了这种判断方法在不同的nas上有不同的表现? 有没有可能把这里的权限修改下,改成警告而非错误呢,或者放开限制一级目录必须为/media也可以吧。

就是最简单判断是否是文件夹,如果这都无法通过,放宽 /media 程序也不可能通过后续更加复杂的逻辑判断

https://github.com/allanpk716/ChineseSubFinder/blob/0df745b6b1e925ebe73823e1eacab038a8097854/internal/backend/controllers/base/path_things.go#28

from chinesesubfinder.

rozbo avatar rozbo commented on June 2, 2024

现在来看,似乎真的是isDir这个逻辑有点瑕疵?
没看后续逻辑,但目前来看,假如放宽 /media 限制,比如 /volume2/video/movie 直接映射到 /movie, 此时movie是可以通过权限检测的(已测,上面有截图)
现在我是用重复映射的方式能正常运行的,即/media 随便映射一个目录,然后把其余子目录再分别映射到 /media下,这种方式可以正常工作,就证明了文件确实是存在,并且权限没问题的。(况且777权限都无法使这个isDir返回为true)

这里我有个推测,有没有可能像群晖这样的系统里,map进去的二级目录不是典型意义的文件夹?可能是链接之类的东西

func IsDir(path string) bool {
s, err := os.Stat(path)

看能否把这里的os.Stat(path) 改成 os.Lstat(path) ,这个Lstat是可以传统链接的,但Stat不行。

[已测] 推断错误

先这么滴吧,这样映射好像没啥问题,先用着吧

from chinesesubfinder.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.