Browse Source

adjust for directory listing

ftp
Chris Lu 4 years ago
parent
commit
b5e2be635a
  1. 16
      weed/filer/hbase/hbase_store.go

16
weed/filer/hbase/hbase_store.go

@ -112,7 +112,7 @@ func (store *HbaseStore) DeleteEntry(ctx context.Context, path util.FullPath) (e
func (store *HbaseStore) DeleteFolderChildren(ctx context.Context, path util.FullPath) (err error) { func (store *HbaseStore) DeleteFolderChildren(ctx context.Context, path util.FullPath) (err error) {
family := map[string][]string{store.cfMetaDir: {COLUMN_NAME}} family := map[string][]string{store.cfMetaDir: {COLUMN_NAME}}
expectedPrefix := []byte(path+"/")
expectedPrefix := []byte(path + "/")
scan, err := hrpc.NewScanRange(ctx, store.table, expectedPrefix, nil, hrpc.Families(family)) scan, err := hrpc.NewScanRange(ctx, store.table, expectedPrefix, nil, hrpc.Families(family))
if err != nil { if err != nil {
return err return err
@ -133,6 +133,11 @@ func (store *HbaseStore) DeleteFolderChildren(ctx context.Context, path util.Ful
if !bytes.HasPrefix(cell.Row, expectedPrefix) { if !bytes.HasPrefix(cell.Row, expectedPrefix) {
break break
} }
fullpath := util.FullPath(cell.Row)
dir, _ := fullpath.DirAndName()
if dir != string(dirPath) {
continue
}
err = store.doDelete(ctx, store.cfMetaDir, cell.Row) err = store.doDelete(ctx, store.cfMetaDir, cell.Row)
if err != nil { if err != nil {
@ -149,7 +154,7 @@ func (store *HbaseStore) ListDirectoryEntries(ctx context.Context, dirPath util.
func (store *HbaseStore) ListDirectoryPrefixedEntries(ctx context.Context, dirPath util.FullPath, startFileName string, includeStartFile bool, limit int, prefix string) ([]*filer.Entry, error) { func (store *HbaseStore) ListDirectoryPrefixedEntries(ctx context.Context, dirPath util.FullPath, startFileName string, includeStartFile bool, limit int, prefix string) ([]*filer.Entry, error) {
family := map[string][]string{store.cfMetaDir: {COLUMN_NAME}} family := map[string][]string{store.cfMetaDir: {COLUMN_NAME}}
expectedPrefix := []byte(dirPath.Child(prefix))
expectedPrefix := []byte(string(dirPath) + "/" + prefix)
scan, err := hrpc.NewScanRange(ctx, store.table, expectedPrefix, nil, hrpc.Families(family)) scan, err := hrpc.NewScanRange(ctx, store.table, expectedPrefix, nil, hrpc.Families(family))
if err != nil { if err != nil {
return nil, err return nil, err
@ -176,12 +181,13 @@ func (store *HbaseStore) ListDirectoryPrefixedEntries(ctx context.Context, dirPa
} }
fullpath := util.FullPath(cell.Row) fullpath := util.FullPath(cell.Row)
dir, fileName := fullpath.DirAndName()
if dir != string(dirPath) {
continue
}
value := cell.Value value := cell.Value
_, fileName := fullpath.DirAndName()
if fileName == startFileName && !includeStartFile { if fileName == startFileName && !includeStartFile {
continue continue
} }

Loading…
Cancel
Save