diff options
Diffstat (limited to 'weed/filesys/file.go')
| -rw-r--r-- | weed/filesys/file.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/weed/filesys/file.go b/weed/filesys/file.go new file mode 100644 index 000000000..bb2e52113 --- /dev/null +++ b/weed/filesys/file.go @@ -0,0 +1,34 @@ +package filesys + +import ( + "bazil.org/fuse" + "fmt" + "github.com/chrislusf/seaweedfs/weed/filer" + "context" +) + +type File struct { + FileId filer.FileId + Name string + wfs *WFS +} + +func (file *File) Attr(context context.Context, attr *fuse.Attr) error { + attr.Mode = 0444 + ret, err := filer.GetFileSize(file.wfs.filer, string(file.FileId)) + if err == nil { + attr.Size = ret.Size + } else { + fmt.Printf("Get file %s attr [ERROR] %s\n", file.Name, err) + } + return err +} + +func (file *File) ReadAll(ctx context.Context) ([]byte, error) { + ret, err := filer.GetFileContent(file.wfs.filer, string(file.FileId)) + if err == nil { + return ret.Content, nil + } + fmt.Printf("Get file %s content [ERROR] %s\n", file.Name, err) + return nil, err +} |
