diff options
| author | Chris Lu <chris.lu@gmail.com> | 2018-05-16 00:08:44 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2018-05-16 00:08:44 -0700 |
| commit | b303a02461a009298e27f7b9b4f8ae68c8f44f21 (patch) | |
| tree | bc6a6e6415311c0fd31626fc7abe64d807c15f00 /weed/filer2 | |
| parent | c7a71d35b0f4c94361f227396e12412e4333a2ba (diff) | |
| download | seaweedfs-b303a02461a009298e27f7b9b4f8ae68c8f44f21.tar.xz seaweedfs-b303a02461a009298e27f7b9b4f8ae68c8f44f21.zip | |
cp file can work
1. consolidate to filer_pb.FileChunk
2. dir add file, mkdir
3. file flush, write
updates having issue
Diffstat (limited to 'weed/filer2')
| -rw-r--r-- | weed/filer2/embedded/embedded_store.go | 3 | ||||
| -rw-r--r-- | weed/filer2/filechunks.go | 4 | ||||
| -rw-r--r-- | weed/filer2/filer.go | 5 | ||||
| -rw-r--r-- | weed/filer2/filer_structure.go | 14 | ||||
| -rw-r--r-- | weed/filer2/memdb/memdb_store.go | 7 |
5 files changed, 17 insertions, 16 deletions
diff --git a/weed/filer2/embedded/embedded_store.go b/weed/filer2/embedded/embedded_store.go index a69190e32..f871f18e2 100644 --- a/weed/filer2/embedded/embedded_store.go +++ b/weed/filer2/embedded/embedded_store.go @@ -3,6 +3,7 @@ package embedded import ( "github.com/syndtr/goleveldb/leveldb" "github.com/chrislusf/seaweedfs/weed/filer2" + "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" ) type EmbeddedStore struct { @@ -25,7 +26,7 @@ func (filer *EmbeddedStore) AddDirectoryLink(directory *filer2.Entry, delta int3 return nil } -func (filer *EmbeddedStore) AppendFileChunk(fullpath filer2.FullPath, fileChunk filer2.FileChunk) (err error) { +func (filer *EmbeddedStore) AppendFileChunk(fullpath filer2.FullPath, fileChunks []*filer_pb.FileChunk) (err error) { return nil } diff --git a/weed/filer2/filechunks.go b/weed/filer2/filechunks.go index b2f05de3a..9ddbe236e 100644 --- a/weed/filer2/filechunks.go +++ b/weed/filer2/filechunks.go @@ -1,6 +1,8 @@ package filer2 -type Chunks []FileChunk +import "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + +type Chunks []*filer_pb.FileChunk func (chunks Chunks) TotalSize() (size uint64) { for _, c := range chunks { diff --git a/weed/filer2/filer.go b/weed/filer2/filer.go index 5f76d6fb0..4ee6f4e50 100644 --- a/weed/filer2/filer.go +++ b/weed/filer2/filer.go @@ -8,6 +8,7 @@ import ( "path/filepath" "time" "os" + "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" ) type Filer struct { @@ -105,8 +106,8 @@ func (f *Filer) CreateEntry(entry *Entry) (error) { return nil } -func (f *Filer) AppendFileChunk(p FullPath, c FileChunk) (err error) { - return f.store.AppendFileChunk(p, c) +func (f *Filer) AppendFileChunk(p FullPath, chunks []*filer_pb.FileChunk) (err error) { + return f.store.AppendFileChunk(p, chunks) } func (f *Filer) FindEntry(p FullPath) (found bool, entry *Entry, err error) { diff --git a/weed/filer2/filer_structure.go b/weed/filer2/filer_structure.go index b2c1f5902..1d2da752d 100644 --- a/weed/filer2/filer_structure.go +++ b/weed/filer2/filer_structure.go @@ -5,9 +5,9 @@ import ( "os" "time" "path/filepath" + "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" ) -type FileId string //file id in SeaweedFS type FullPath string func NewFullPath(dir, name string) FullPath { @@ -51,18 +51,12 @@ type Entry struct { Attr // the following is for files - Chunks []FileChunk `json:"chunks,omitempty"` -} - -type FileChunk struct { - Fid FileId `json:"fid,omitempty"` - Offset int64 `json:"offset,omitempty"` - Size uint64 `json:"size,omitempty"` // size in bytes + Chunks []*filer_pb.FileChunk `json:"chunks,omitempty"` } type AbstractFiler interface { CreateEntry(*Entry) (error) - AppendFileChunk(FullPath, FileChunk) (err error) + AppendFileChunk(FullPath, []*filer_pb.FileChunk) (err error) FindEntry(FullPath) (found bool, fileEntry *Entry, err error) DeleteEntry(FullPath) (fileEntry *Entry, err error) @@ -74,7 +68,7 @@ var ErrNotFound = errors.New("filer: no entry is found in filer store") type FilerStore interface { InsertEntry(*Entry) (error) - AppendFileChunk(FullPath, FileChunk) (err error) + AppendFileChunk(FullPath, []*filer_pb.FileChunk) (err error) FindEntry(FullPath) (found bool, entry *Entry, err error) DeleteEntry(FullPath) (fileEntry *Entry, err error) diff --git a/weed/filer2/memdb/memdb_store.go b/weed/filer2/memdb/memdb_store.go index edddcca96..0276e9a7f 100644 --- a/weed/filer2/memdb/memdb_store.go +++ b/weed/filer2/memdb/memdb_store.go @@ -6,6 +6,7 @@ import ( "strings" "fmt" "time" + "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" ) type MemDbStore struct { @@ -32,13 +33,15 @@ func (filer *MemDbStore) InsertEntry(entry *filer2.Entry) (err error) { return nil } -func (filer *MemDbStore) AppendFileChunk(fullpath filer2.FullPath, fileChunk filer2.FileChunk) (err error) { +func (filer *MemDbStore) AppendFileChunk(fullpath filer2.FullPath, fileChunks []*filer_pb.FileChunk) (err error) { found, entry, err := filer.FindEntry(fullpath) if !found { return fmt.Errorf("No such file: %s", fullpath) } - entry.Chunks = append(entry.Chunks, fileChunk) + entry.Chunks = append(entry.Chunks, fileChunks...) entry.Mtime = time.Now() + println("appending to entry", entry.Name(), len(entry.Chunks)) + filer.tree.ReplaceOrInsert(Entry{entry}) return nil } |
