aboutsummaryrefslogtreecommitdiff
path: root/weed/filesys/file.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/filesys/file.go')
-rw-r--r--weed/filesys/file.go34
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
+}