本文整理汇总了Golang中github.com/hanwen/go-fuse/fuse/nodefs.NewFileSystemConnector函数的典型用法代码示例。如果您正苦于以下问题:Golang NewFileSystemConnector函数的具体用法?Golang NewFileSystemConnector怎么用?Golang NewFileSystemConnector使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewFileSystemConnector函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: mountServer
func mountServer(token, mountpoint string) (*fuse.Server, error) {
if err := os.MkdirAll(filepath.Dir(mountpoint), 0755); err != nil {
return nil, err
}
client, err := vault.Client(token)
if err != nil {
return nil, err
}
kwfs, root := fs.NewFs(client)
mountOptions := &fuse.MountOptions{
AllowOther: true,
Name: kwfs.String(),
Options: []string{"default_permissions"},
}
// Empty Options struct avoids setting a global uid/gid override.
conn := nodefs.NewFileSystemConnector(root, &nodefs.Options{})
server, err := fuse.NewServer(conn.RawFS(), mountpoint, mountOptions)
if err != nil {
log.Printf("Mount fail: %v\n", err)
return nil, err
}
go server.Serve()
return server, nil
}
开发者ID:ChrisMcKenzie,项目名称:docker-volume-vault,代码行数:30,代码来源:volume.go
示例2: main
// this function was borrowed from https://raw.githubusercontent.com/hanwen/go-fuse/master/example/memfs/main.go
func main() {
// Scans the arg list and sets up flags
debug := flag.Bool("debug", false, "print debugging messages.")
flag.Parse()
if flag.NArg() < 3 {
fmt.Println("usage: appendfs <mountpoint> <datafile> <metadatafile>")
os.Exit(2)
}
mountPoint := flag.Arg(0)
fs, err := appendfs.NewAppendFS(flag.Arg(1), flag.Arg(2))
if err != nil {
fmt.Printf("Mount fail: %v\n", err)
os.Exit(1)
}
options := nodefs.NewOptions()
options.Owner = nil
conn := nodefs.NewFileSystemConnector(fs.Root(), options)
server, err := fuse.NewServer(conn.RawFS(), mountPoint, nil)
if err != nil {
fmt.Printf("Mount fail: %v\n", err)
os.Exit(1)
}
server.SetDebug(*debug)
fmt.Println("Mounted!")
server.Serve()
fmt.Println("Closing filesystem")
err = fs.Close()
if err != nil {
fmt.Printf("Unmount fail: %v\n", err)
os.Exit(1)
}
}
开发者ID:e-tothe-ipi,项目名称:appendfs,代码行数:34,代码来源:main.go
示例3: newFuseFS
func newFuseFS(tmpDir string, rpcFS *RpcFs, writableRoot string) (*fuseFS, error) {
tmpDir, err := ioutil.TempDir(tmpDir, "termite-task")
if err != nil {
return nil, err
}
fs := &fuseFS{
writableRoot: strings.TrimLeft(writableRoot, "/"),
workers: map[string]*workerFS{},
rpcFS: rpcFS,
rpcNodeFS: pathfs.NewPathNodeFs(&multiRPCFS{rpcFS},
&pathfs.PathNodeFsOptions{ClientInodes: true}),
tmpDir: tmpDir,
mount: filepath.Join(tmpDir, "mnt"),
}
if err := os.Mkdir(fs.mount, 0755); err != nil {
return nil, err
}
fs.fsConnector = nodefs.NewFileSystemConnector(fs.rpcNodeFS.Root(),
nodeFSOptions())
fuseOpts := fuse.MountOptions{}
if os.Geteuid() == 0 {
fuseOpts.AllowOther = true
}
fs.server, err = fuse.NewServer(fs.fsConnector.RawFS(), fs.mount, &fuseOpts)
if err != nil {
return nil, err
}
go fs.server.Serve()
return fs, nil
}
开发者ID:hanwen,项目名称:termite,代码行数:33,代码来源:fuse.go
示例4: main
func main() {
if len(os.Args) < 2 {
fmt.Fprintf(os.Stderr, "Usage: %s <mountpoint>\n", os.Args[0])
os.Exit(1)
}
mountOptions := &fuse.MountOptions{
AllowOther: true,
Name: "boardfs",
Options: []string{"default_permissions"},
}
mountpoint := os.Args[1]
root := boardfs.NewRootNode()
conn := nodefs.NewFileSystemConnector(root, &nodefs.Options{})
server, err := fuse.NewServer(conn.RawFS(), mountpoint, mountOptions)
if err != nil {
log.Fatalf("Mount fail: %v\n", err)
}
// shutdown fuseserver on SIGINT
sigchan := make(chan os.Signal, 1)
signal.Notify(sigchan, os.Interrupt, os.Kill)
go func() {
sig := <-sigchan
fmt.Print("\nExiting on ", sig, "\n")
server.Unmount()
}()
server.Serve()
signal.Stop(sigchan)
}
开发者ID:philips,项目名称:goboardfs,代码行数:32,代码来源:main.go
示例5: pathfsFrontend
func pathfsFrontend(key []byte, cipherdir string, mountpoint string, debug bool, openssl bool) *fuse.Server {
finalFs := pathfs_frontend.NewFS(key, cipherdir, openssl)
pathFsOpts := &pathfs.PathNodeFsOptions{ClientInodes: true}
pathFs := pathfs.NewPathNodeFs(finalFs, pathFsOpts)
fuseOpts := &nodefs.Options{
// These options are to be compatible with libfuse defaults,
// making benchmarking easier.
NegativeTimeout: time.Second,
AttrTimeout: time.Second,
EntryTimeout: time.Second,
}
conn := nodefs.NewFileSystemConnector(pathFs.Root(), fuseOpts)
var mOpts fuse.MountOptions
mOpts.AllowOther = false
// Set values shown in "df -T" and friends
// First column, "Filesystem"
mOpts.Options = append(mOpts.Options, "fsname="+cipherdir)
// Second column, "Type", will be shown as "fuse." + Name
mOpts.Name = "gocryptfs"
srv, err := fuse.NewServer(conn.RawFS(), mountpoint, &mOpts)
if err != nil {
fmt.Printf("Mount failed: %v", err)
os.Exit(ERREXIT_MOUNT)
}
srv.SetDebug(debug)
return srv
}
开发者ID:theit8514,项目名称:gocryptfs,代码行数:30,代码来源:main.go
示例6: Start
// Start takes a path to the directory where the goinfo file system
// should be mounted. If the directory does not exist, it will be
// created. Start will return an error if the directory cannot be
// created or if the file system cannot be mounted at this location
// for any reason.
func Start(mountpoint string) error {
//already mounted there
if _, found := servers[mountpoint]; found {
return nil
}
if _, err := os.Stat(mountpoint); os.IsNotExist(err) {
if err = os.Mkdir(mountpoint, 0755); err != nil {
return err
}
}
nfs := pathfs.NewPathNodeFs(gfs, nil)
conn := nodefs.NewFileSystemConnector(nfs.Root(), nil)
server, err := fuse.NewServer(conn.RawFS(), mountpoint, &fuse.MountOptions{AllowOther: true})
if err != nil {
return errors.New("Failed to mount monitoring fs at " + mountpoint + ": " + err.Error())
}
servers[mountpoint] = server
//start handling the fs calls
go server.Serve()
return nil
}
开发者ID:jmptrader,项目名称:goinfo,代码行数:31,代码来源:info.go
示例7: mountServer
func (d *driver) mountServer(mountpoint string) (*fuse.Server, error) {
if err := os.MkdirAll(filepath.Dir(mountpoint), 0755); err != nil {
return nil, err
}
conf := api.DefaultConfig()
client, err := api.NewClient(conf)
if err != nil {
return nil, err
}
ownership := keywhizfs.NewOwnership("root", "root")
kwfs, root := NewFs(client, ownership)
mountOptions := &fuse.MountOptions{
AllowOther: true,
Name: kwfs.String(),
Options: []string{"default_permissions"},
}
// Empty Options struct avoids setting a global uid/gid override.
conn := nodefs.NewFileSystemConnector(root, &nodefs.Options{})
server, err := fuse.NewServer(conn.RawFS(), mountpoint, mountOptions)
if err != nil {
log.Printf("Mount fail: %v\n", err)
return nil, err
}
go server.Serve()
return server, nil
}
开发者ID:pshouse,项目名称:global-hack-day-3,代码行数:32,代码来源:driver.go
示例8: mount
func mount() error {
var err error
if fs != nil || server != nil {
// already mounting
return nil
}
// create mountpoint
os.Mkdir(TEST_MOUNTPOINT, 0777)
// config
config := &config.Config{
MountPoint: TEST_MOUNTPOINT,
ContainerName: TEST_CONTAINER_NAME,
CreateContainer: true,
Debug: true,
NoDaemon: true,
}
// swift
swift := openstack.NewSwift(config)
if err = swift.Auth(); err != nil {
return err
}
swift.DeleteContainer()
// mapper
mapper, err := mapper.NewObjectMapper(config)
if err != nil {
return err
}
// initialize filesystem
fs = NewObjectFileSystem(config, mapper)
path := pathfs.NewPathNodeFs(fs, nil)
con := nodefs.NewFileSystemConnector(path.Root(), &nodefs.Options{})
opts := &fuse.MountOptions{
Name: "test-filesystem",
FsName: "test-filesystem",
}
// create server and do mount with dedicated goroutine
server, err = fuse.NewServer(con.RawFS(), TEST_MOUNTPOINT, opts)
if err != nil {
return err
}
go func() {
server.Serve()
}()
server.WaitMount()
return nil
}
开发者ID:hironobu-s,项目名称:swiftfs,代码行数:58,代码来源:filesystem_test.go
示例9: main
func main() {
var Usage = func() {
fmt.Fprintf(os.Stderr, "Usage: %s [options] url mountpoint\n", os.Args[0])
flag.PrintDefaults()
}
flag.Parse()
if flag.NArg() != 2 {
Usage()
os.Exit(1)
}
serverURL, mountpoint := flag.Args()[0], flag.Args()[1]
logConfig := klog.Config{*debug, mountpoint}
logger = klog.New("kwfs_main", logConfig)
defer logger.Close()
if *certFile == "" {
logger.Debugf("Certificate file not specified, assuming certificate also in %s", *keyFile)
certFile = keyFile
}
lockMemory()
clientTimeout := time.Duration(*timeoutSeconds) * time.Second
freshThreshold := 200 * time.Millisecond
backendDeadline := 500 * time.Millisecond
maxWait := clientTimeout + backendDeadline
timeouts := keywhizfs.Timeouts{freshThreshold, backendDeadline, maxWait}
client := keywhizfs.NewClient(*certFile, *keyFile, *caFile, serverURL, clientTimeout, logConfig, *ping)
ownership := keywhizfs.NewOwnership(*user, *group)
kwfs, root, err := keywhizfs.NewKeywhizFs(&client, ownership, timeouts, logConfig)
if err != nil {
log.Fatalf("KeywhizFs init fail: %v\n", err)
}
mountOptions := &fuse.MountOptions{
AllowOther: true,
Name: kwfs.String(),
Options: []string{"default_permissions"},
}
// Empty Options struct avoids setting a global uid/gid override.
conn := nodefs.NewFileSystemConnector(root, &nodefs.Options{})
server, err := fuse.NewServer(conn.RawFS(), mountpoint, mountOptions)
if err != nil {
log.Fatalf("Mount fail: %v\n", err)
}
server.Serve()
}
开发者ID:rxacevedo,项目名称:keywhiz-fs,代码行数:54,代码来源:main.go
示例10: NewTestCase
// Create and mount filesystem.
func NewTestCase(t *testing.T) *testCase {
tc := &testCase{}
tc.tester = t
// Make sure system setting does not affect test.
syscall.Umask(0)
const name string = "hello.txt"
const subdir string = "subdir"
var err error
tc.tmpDir, err = ioutil.TempDir("", "go-fuse")
if err != nil {
t.Fatalf("TempDir failed: %v", err)
}
tc.orig = tc.tmpDir + "/orig"
tc.mnt = tc.tmpDir + "/mnt"
tc.Mkdir(tc.orig, 0700)
tc.Mkdir(tc.mnt, 0700)
tc.mountFile = filepath.Join(tc.mnt, name)
tc.mountSubdir = filepath.Join(tc.mnt, subdir)
tc.origFile = filepath.Join(tc.orig, name)
tc.origSubdir = filepath.Join(tc.orig, subdir)
var pfs pathfs.FileSystem
pfs = pathfs.NewLoopbackFileSystem(tc.orig)
pfs = pathfs.NewLockingFileSystem(pfs)
tc.pathFs = pathfs.NewPathNodeFs(pfs, &pathfs.PathNodeFsOptions{
ClientInodes: true})
tc.connector = nodefs.NewFileSystemConnector(tc.pathFs.Root(),
&nodefs.Options{
EntryTimeout: testTtl,
AttrTimeout: testTtl,
NegativeTimeout: 0.0,
Debug: VerboseTest(),
})
tc.state, err = fuse.NewServer(
fuse.NewRawFileSystem(tc.connector.RawFS()), tc.mnt, &fuse.MountOptions{
SingleThreaded: true,
Debug: VerboseTest(),
})
if err != nil {
t.Fatal("NewServer:", err)
}
go tc.state.Serve()
if err := tc.state.WaitMount(); err != nil {
t.Fatal("WaitMount", err)
}
return tc
}
开发者ID:Richardphp,项目名称:noms,代码行数:55,代码来源:loopback_test.go
示例11: NewTestCase
// Create and mount filesystem.
func NewTestCase(t *testing.T) *testCase {
me := &testCase{}
me.tester = t
// Make sure system setting does not affect test.
syscall.Umask(0)
const name string = "hello.txt"
const subdir string = "subdir"
var err error
me.tmpDir, err = ioutil.TempDir("", "go-fuse")
if err != nil {
t.Fatalf("TempDir failed: %v", err)
}
me.orig = me.tmpDir + "/orig"
me.mnt = me.tmpDir + "/mnt"
os.Mkdir(me.orig, 0700)
os.Mkdir(me.mnt, 0700)
me.mountFile = filepath.Join(me.mnt, name)
me.mountSubdir = filepath.Join(me.mnt, subdir)
me.origFile = filepath.Join(me.orig, name)
me.origSubdir = filepath.Join(me.orig, subdir)
var pfs pathfs.FileSystem
pfs = pathfs.NewLoopbackFileSystem(me.orig)
pfs = pathfs.NewLockingFileSystem(pfs)
me.pathFs = pathfs.NewPathNodeFs(pfs, &pathfs.PathNodeFsOptions{
ClientInodes: true})
me.connector = nodefs.NewFileSystemConnector(me.pathFs.Root(),
&nodefs.Options{
EntryTimeout: testTtl,
AttrTimeout: testTtl,
NegativeTimeout: 0.0,
})
me.connector.SetDebug(VerboseTest())
me.state, err = fuse.NewServer(
fuse.NewRawFileSystem(me.connector.RawFS()), me.mnt, &fuse.MountOptions{SingleThreaded: true})
if err != nil {
t.Fatal("NewServer:", err)
}
me.state.SetDebug(VerboseTest())
// Unthreaded, but in background.
go me.state.Serve()
me.state.WaitMount()
return me
}
开发者ID:hoffoo,项目名称:go-fuse,代码行数:54,代码来源:loopback_test.go
示例12: main
func main() {
fsdebug := flag.Bool("fs-debug", false, "switch on FS debugging")
p4port := flag.String("p4-server", "", "address for P4 server")
p4binary := flag.String("p4-binary", "p4", "binary for P4 commandline client")
backingDir := flag.String("backing", "", "directory to store file contents.")
profile := flag.String("profile", "", "record cpu profile.")
flag.Parse()
if len(flag.Args()) != 1 {
log.Fatal("Usage: p4fs MOUNT-POINT")
}
mountpoint := flag.Arg(0)
opts := p4.ConnOptions{
Binary: *p4binary,
Address: *p4port,
}
p4conn := p4.NewConn(opts)
if *backingDir == "" {
d, err := ioutil.TempDir("", "p4fs")
if err != nil {
log.Fatalf("TempDir failed: %v", err)
}
*backingDir = d
defer os.RemoveAll(d)
}
root := NewP4FSRoot(p4conn, *backingDir)
conn := nodefs.NewFileSystemConnector(root, nodefs.NewOptions())
mount, err := fuse.NewServer(conn.RawFS(), mountpoint, nil)
if err != nil {
log.Fatalf("mount failed: %v", err)
}
conn.SetDebug(*fsdebug)
mount.SetDebug(*fsdebug)
log.Println("starting FUSE.")
if *profile != "" {
profFile, err := os.Create(*profile)
if err != nil {
log.Fatalf("os.Create: %v", err)
}
pprof.StartCPUProfile(profFile)
defer pprof.StopCPUProfile()
}
mount.Serve()
}
开发者ID:hanwen,项目名称:p4fuse,代码行数:51,代码来源:main.go
示例13: mountServer
func (d *keywhizDriver) mountServer(mountpoint string) (*fuse.Server, error) {
logConfig := klog.Config{
Debug: d.config.Debug,
Mountpoint: mountpoint,
}
if err := os.MkdirAll(filepath.Dir(mountpoint), 0755); err != nil {
return nil, err
}
freshThreshold := 200 * time.Millisecond
backendDeadline := 500 * time.Millisecond
maxWait := d.config.TimeoutSeconds + backendDeadline
timeouts := keywhizfs.Timeouts{
Fresh: freshThreshold,
BackendDeadline: backendDeadline,
MaxWait: maxWait,
}
client := keywhizfs.NewClient(d.config.CertFile, d.config.KeyFile, d.config.CaFile,
d.config.ServerURL, d.config.TimeoutSeconds, logConfig, d.config.Ping)
ownership := keywhizfs.NewOwnership(d.config.User, d.config.Group)
kwfs, root, err := keywhizfs.NewKeywhizFs(&client, ownership, timeouts, logConfig)
if err != nil {
client.Errorf("Mount fail: %v\n", err)
return nil, err
}
mountOptions := &fuse.MountOptions{
AllowOther: true,
Name: kwfs.String(),
Options: []string{"default_permissions"},
}
// Empty Options struct avoids setting a global uid/gid override.
conn := nodefs.NewFileSystemConnector(root, &nodefs.Options{})
server, err := fuse.NewServer(conn.RawFS(), mountpoint, mountOptions)
if err != nil {
client.Errorf("Mount fail: %v\n", err)
return nil, err
}
go server.Serve()
return server, nil
}
开发者ID:arthurtsang,项目名称:docker-volume-keywhiz,代码行数:47,代码来源:driver.go
示例14: MountVfs
func MountVfs(store *storage.Storage, mountPath string, options []string) (*FuseVfs, error) {
fuseVfs := FuseVfs{nil, "", nil}
pathFs := pathfs.NewPathNodeFs(&fuseVfs, nil)
conn := nodefs.NewFileSystemConnector(pathFs.Root(), nil)
mountOptions := &fuse.MountOptions{Options: options}
server, err := fuse.NewServer(conn.RawFS(), mountPath, mountOptions)
if err != nil {
return nil, fmt.Errorf("could not mount virtual filesystem at '%v': %v", mountPath, err)
}
fuseVfs.store = store
fuseVfs.mountPath = mountPath
fuseVfs.server = server
return &fuseVfs, nil
}
开发者ID:logtcn,项目名称:TMSU,代码行数:18,代码来源:fusevfs.go
示例15: main
func main() {
// Scans the arg list and sets up flags
debug := flag.Bool("debug", false, "print debugging messages.")
other := flag.Bool("allow-other", false, "mount with -o allowother.")
flag.Parse()
if flag.NArg() < 2 {
// TODO - where to get program name?
fmt.Println("usage: main MOUNTPOINT ORIGINAL")
os.Exit(2)
}
var finalFs pathfs.FileSystem
orig := flag.Arg(1)
loopbackfs := pathfs.NewLoopbackFileSystem(orig)
finalFs = loopbackfs
opts := &nodefs.Options{
// These options are to be compatible with libfuse defaults,
// making benchmarking easier.
NegativeTimeout: time.Second,
AttrTimeout: time.Second,
EntryTimeout: time.Second,
}
pathFs := pathfs.NewPathNodeFs(finalFs, nil)
conn := nodefs.NewFileSystemConnector(pathFs.Root(), opts)
mountPoint := flag.Arg(0)
origAbs, _ := filepath.Abs(orig)
mOpts := &fuse.MountOptions{
AllowOther: *other,
Name: "loopbackfs",
FsName: origAbs,
}
state, err := fuse.NewServer(conn.RawFS(), mountPoint, mOpts)
if err != nil {
fmt.Printf("Mount fail: %v\n", err)
os.Exit(1)
}
state.SetDebug(*debug)
fmt.Println("Mounted!")
state.Serve()
}
开发者ID:eliq,项目名称:go-fuse,代码行数:42,代码来源:main.go
示例16: mount
func mount(fs pathfs.FileSystem, mountpoint string) (server *fuse.Server, err error) {
path := pathfs.NewPathNodeFs(fs, nil)
con := nodefs.NewFileSystemConnector(path.Root(), &nodefs.Options{
EntryTimeout: time.Second,
AttrTimeout: time.Second,
NegativeTimeout: time.Second,
})
opts := &fuse.MountOptions{
Name: config.APP_NAME,
FsName: config.APP_NAME,
}
server, err = fuse.NewServer(con.RawFS(), mountpoint, opts)
if err != nil {
return nil, err
}
return server, nil
}
开发者ID:hironobu-s,项目名称:swiftfs,代码行数:20,代码来源:app.go
示例17: main
// this function was borrowed from https://raw.githubusercontent.com/hanwen/go-fuse/master/example/memfs/main.go
func main() {
// Scans the arg list and sets up flags
debug := flag.Bool("debug", false, "print debugging messages.")
flag.Parse()
if flag.NArg() < 1 {
fmt.Println("usage: inmemfs MOUNTPOINT")
os.Exit(2)
}
mountPoint := flag.Arg(0)
root := newInMemFS().root
conn := nodefs.NewFileSystemConnector(root, nil)
server, err := fuse.NewServer(conn.RawFS(), mountPoint, nil)
if err != nil {
fmt.Printf("Mount fail: %v\n", err)
os.Exit(1)
}
server.SetDebug(*debug)
fmt.Println("Mounted!")
server.Serve()
}
开发者ID:e-tothe-ipi,项目名称:inmemfs,代码行数:22,代码来源:main.go
示例18: main
func main() {
var finalFs pathfs.FileSystem
config, err := parseConfig("config.json")
if err != nil {
log.Fatal(err)
}
event.StartListening()
kakigoorifs := fs.NewKakigooriFileSystem(config.Root)
finalFs = kakigoorifs
opts := &nodefs.Options{
NegativeTimeout: time.Second,
AttrTimeout: time.Second,
EntryTimeout: time.Second,
}
pathFs := pathfs.NewPathNodeFs(finalFs, nil)
conn := nodefs.NewFileSystemConnector(pathFs, opts)
mOpts := &fuse.MountOptions{
AllowOther: false,
}
state, err := fuse.NewServer(conn.RawFS(), config.MountPoint, mOpts)
if err != nil {
log.Printf("Mount fail: %v\n", err)
os.Exit(1)
}
state.SetDebug(false)
log.Println("Mounted!")
state.Serve()
}
开发者ID:rizki96,项目名称:kakigoori,代码行数:38,代码来源:kakigoori.go
示例19: main
func main() {
// Scans the arg list and sets up flags
debug := flag.Bool("debug", false, "print debugging messages.")
flag.Parse()
if flag.NArg() < 2 {
// TODO - where to get program name?
fmt.Println("usage: main MOUNTPOINT BACKING-PREFIX")
os.Exit(2)
}
mountPoint := flag.Arg(0)
prefix := flag.Arg(1)
fs := nodefs.NewMemNodeFs(prefix)
conn := nodefs.NewFileSystemConnector(fs, nil)
server, err := fuse.NewServer(conn.RawFS(), mountPoint, nil)
if err != nil {
fmt.Printf("Mount fail: %v\n", err)
os.Exit(1)
}
server.SetDebug(*debug)
fmt.Println("Mounted!")
server.Serve()
}
开发者ID:newblue,项目名称:go-fuse,代码行数:23,代码来源:main.go
示例20: mountAndServe
func mountAndServe(options *Options) {
log.Printf("[DEBUG] mounting at %s directed at %s with options: %+v", options.Args.Mountpoint, options.Endpoint, options.MountOptions.opts)
nfs := pathfs.NewPathNodeFs(metadatafs.New(options.Endpoint), nil)
server, err := fuse.NewServer(
nodefs.NewFileSystemConnector(nfs.Root(), nil).RawFS(),
options.Args.Mountpoint,
&fuse.MountOptions{Options: options.MountOptions.opts})
if err != nil {
log.Fatalf("mount fail: %v\n", err)
}
server.SetDebug(len(options.Verbose) >= moreVerbose)
if options.Tags {
go func() {
server.WaitMount()
log.Printf("[DEBUG] mounting tags")
mountTags(nfs, options)
log.Printf("[DEBUG] tags mounted")
}()
}
log.Printf("[DEBUG] mounting")
server.Serve()
}
开发者ID:jszwedko,项目名称:ec2-metadatafs,代码行数:24,代码来源:main.go
注:本文中的github.com/hanwen/go-fuse/fuse/nodefs.NewFileSystemConnector函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论