gpt4 book ai didi

java - Hadoop FileSystem.mkdirs(path, permission) 忽略权限

转载 作者:可可西里 更新时间:2023-11-01 15:05:14 25 4
gpt4 key购买 nike

我正在尝试以编程方式在 hdfs 中创建目录。我需要该目录对所有用户都是可写的。所以我尝试像这样将权限传递给 mkdirs:

Path dir = new Path("/tmp/mkdir-test");    
fileSystem.mkdirs(dir, new FsPermission(FsAction.ALL, FsAction.ALL, FsAction.ALL));

然而,结果是我获得了具有drwxr-xr-x 权限的目录。这似乎不是一些总体权限问题,因为如果我在下一行明确设置它们:

// For some reason the initial permissions are ignored
fileSystem.setPermission(dir, new FsPermission(FsAction.ALL, FsAction.ALL, FsAction.ALL));

该目录按预期以 drwxrwxrwx 正确结束。

为什么传递给 mkdirs 的权限不被接受?

最佳答案

尽管实际方法的 javadoc 没有提及任何内容,但静态方法 FileSystem.mkdirs(FileSystem, Path, FsPermission) 提供了一些解释:

Create a directory with the provided permission. The permission of the directory is set to be the provided permission as in setPermission, not permission&~umask.

结果是标准的 mkdirs 与 umask 的给定权限。

静态实用程序方法作为 mkdirssetPermission 的组合实现

关于java - Hadoop FileSystem.mkdirs(path, permission) 忽略权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32586093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com