Support Linux file/dir ACL in weed mount (#8233)
* Support Linux file/dir ACL in weed mount #8229 * Update weed/command/mount_std.go Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
This commit is contained in:
@@ -24,6 +24,7 @@ type MountOptions struct {
|
|||||||
cacheSizeMBForRead *int64
|
cacheSizeMBForRead *int64
|
||||||
dataCenter *string
|
dataCenter *string
|
||||||
allowOthers *bool
|
allowOthers *bool
|
||||||
|
defaultPermissions *bool
|
||||||
umaskString *string
|
umaskString *string
|
||||||
nonempty *bool
|
nonempty *bool
|
||||||
volumeServerAccess *string
|
volumeServerAccess *string
|
||||||
@@ -86,6 +87,7 @@ func init() {
|
|||||||
mountOptions.cacheMetaTtlSec = cmdMount.Flag.Int("cacheMetaTtlSec", 60, "metadata cache validity seconds")
|
mountOptions.cacheMetaTtlSec = cmdMount.Flag.Int("cacheMetaTtlSec", 60, "metadata cache validity seconds")
|
||||||
mountOptions.dataCenter = cmdMount.Flag.String("dataCenter", "", "prefer to write to the data center")
|
mountOptions.dataCenter = cmdMount.Flag.String("dataCenter", "", "prefer to write to the data center")
|
||||||
mountOptions.allowOthers = cmdMount.Flag.Bool("allowOthers", true, "allows other users to access the file system")
|
mountOptions.allowOthers = cmdMount.Flag.Bool("allowOthers", true, "allows other users to access the file system")
|
||||||
|
mountOptions.defaultPermissions = cmdMount.Flag.Bool("defaultPermissions", true, "enforce permissions by the operating system")
|
||||||
mountOptions.umaskString = cmdMount.Flag.String("umask", "022", "octal umask, e.g., 022, 0111")
|
mountOptions.umaskString = cmdMount.Flag.String("umask", "022", "octal umask, e.g., 022, 0111")
|
||||||
mountOptions.nonempty = cmdMount.Flag.Bool("nonempty", false, "allows the mounting over a non-empty directory")
|
mountOptions.nonempty = cmdMount.Flag.Bool("nonempty", false, "allows the mounting over a non-empty directory")
|
||||||
mountOptions.volumeServerAccess = cmdMount.Flag.String("volumeServerAccess", "direct", "access volume servers by [direct|publicUrl|filerProxy]")
|
mountOptions.volumeServerAccess = cmdMount.Flag.String("volumeServerAccess", "direct", "access volume servers by [direct|publicUrl|filerProxy]")
|
||||||
|
|||||||
@@ -188,6 +188,9 @@ func RunMount(option *MountOptions, umask os.FileMode) bool {
|
|||||||
//SyncRead: false, // set to false to enable the FUSE_CAP_ASYNC_READ capability
|
//SyncRead: false, // set to false to enable the FUSE_CAP_ASYNC_READ capability
|
||||||
EnableAcl: true,
|
EnableAcl: true,
|
||||||
}
|
}
|
||||||
|
if *option.defaultPermissions {
|
||||||
|
fuseMountOptions.Options = append(fuseMountOptions.Options, "default_permissions")
|
||||||
|
}
|
||||||
if *option.nonempty {
|
if *option.nonempty {
|
||||||
fuseMountOptions.Options = append(fuseMountOptions.Options, "nonempty")
|
fuseMountOptions.Options = append(fuseMountOptions.Options, "nonempty")
|
||||||
}
|
}
|
||||||
@@ -216,8 +219,12 @@ func RunMount(option *MountOptions, umask os.FileMode) bool {
|
|||||||
fuseMountOptions.Options = append(fuseMountOptions.Options, fmt.Sprintf("iosize=%d", ioSizeMB*1024*1024))
|
fuseMountOptions.Options = append(fuseMountOptions.Options, fmt.Sprintf("iosize=%d", ioSizeMB*1024*1024))
|
||||||
}
|
}
|
||||||
|
|
||||||
fuseMountOptions.EnableWriteback = *option.writebackCache
|
if option.writebackCache != nil {
|
||||||
fuseMountOptions.EnableAsyncDio = *option.asyncDio
|
fuseMountOptions.EnableWriteback = *option.writebackCache
|
||||||
|
}
|
||||||
|
if option.asyncDio != nil {
|
||||||
|
fuseMountOptions.EnableAsyncDio = *option.asyncDio
|
||||||
|
}
|
||||||
if option.cacheSymlink != nil && *option.cacheSymlink {
|
if option.cacheSymlink != nil && *option.cacheSymlink {
|
||||||
fuseMountOptions.EnableSymlinkCaching = true
|
fuseMountOptions.EnableSymlinkCaching = true
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user