mirror of
https://github.com/pgsty/minio.git
synced 2026-08-09 07:43:29 +03:00
Add list() object support for erasure and append storage drivers
- Reply back objects with their protectionlevel and md5sum - // TODO hash value - Calculate md5sum after "storeBlocks()", to make sure data is committed
This commit is contained in:
@@ -21,8 +21,8 @@ func NewStorage(rootDir string) (storage.ObjectStorage, error) {
|
||||
return &newStorage, nil
|
||||
}
|
||||
|
||||
func (fsStorage *fileSystemStorage) List(listPath string) ([]storage.ObjectDescription, error) {
|
||||
fileInfos, err := ioutil.ReadDir(path.Join(fsStorage.RootDir, listPath))
|
||||
func (fsStorage *fileSystemStorage) List() ([]storage.ObjectDescription, error) {
|
||||
fileInfos, err := ioutil.ReadDir(fsStorage.RootDir)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -31,9 +31,9 @@ func (fsStorage *fileSystemStorage) List(listPath string) ([]storage.ObjectDescr
|
||||
|
||||
for _, fi := range fileInfos {
|
||||
description := storage.ObjectDescription{
|
||||
Path: fi.Name(),
|
||||
IsDir: fi.IsDir(),
|
||||
Hash: "", // TODO
|
||||
Name: fi.Name(),
|
||||
Md5sum: "",
|
||||
Protectionlevel: "",
|
||||
}
|
||||
descriptions = append(descriptions, description)
|
||||
}
|
||||
|
||||
@@ -37,56 +37,7 @@ func (s *fileSystemStorageSuite) TestfileStoragePutAtRootPath(c *C) {
|
||||
object1, _ := ioutil.ReadAll(objectResult1)
|
||||
c.Assert(string(object1), Equals, "object1")
|
||||
|
||||
objectList, err := objectStorage.List("/")
|
||||
objectList, err := objectStorage.List()
|
||||
c.Assert(err, IsNil)
|
||||
c.Assert(objectList[0].Path, Equals, "path1")
|
||||
}
|
||||
|
||||
func (s *fileSystemStorageSuite) TestfileStoragePutDirPath(c *C) {
|
||||
rootDir, err := makeTempTestDir()
|
||||
c.Assert(err, IsNil)
|
||||
defer os.RemoveAll(rootDir)
|
||||
|
||||
var objectStorage storage.ObjectStorage
|
||||
objectStorage, _ = NewStorage(rootDir)
|
||||
|
||||
objectBuffer1 := bytes.NewBuffer([]byte("object1"))
|
||||
objectStorage.Put("path1/path2/path3", objectBuffer1)
|
||||
|
||||
// assert object1 was created in correct path
|
||||
objectResult1, err := objectStorage.Get("path1/path2/path3")
|
||||
c.Assert(err, IsNil)
|
||||
object1, _ := ioutil.ReadAll(objectResult1)
|
||||
c.Assert(string(object1), Equals, "object1")
|
||||
|
||||
// add second object
|
||||
objectBuffer2 := bytes.NewBuffer([]byte("object2"))
|
||||
err = objectStorage.Put("path2/path2/path2", objectBuffer2)
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
// add third object
|
||||
objectBuffer3 := bytes.NewBuffer([]byte("object3"))
|
||||
err = objectStorage.Put("object3", objectBuffer3)
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
objectList, err := objectStorage.List("/")
|
||||
c.Assert(err, IsNil)
|
||||
c.Assert(objectList[0], Equals, storage.ObjectDescription{Path: "object3", IsDir: false, Hash: ""})
|
||||
c.Assert(objectList[1], Equals, storage.ObjectDescription{Path: "path1", IsDir: true, Hash: ""})
|
||||
c.Assert(objectList[2], Equals, storage.ObjectDescription{Path: "path2", IsDir: true, Hash: ""})
|
||||
c.Assert(len(objectList), Equals, 3)
|
||||
|
||||
objectList, err = objectStorage.List("/path1")
|
||||
c.Assert(err, IsNil)
|
||||
c.Assert(objectList[0], Equals, storage.ObjectDescription{Path: "path2", IsDir: true, Hash: ""})
|
||||
c.Assert(len(objectList), Equals, 1)
|
||||
|
||||
objectList, err = objectStorage.List("/path1/path2")
|
||||
c.Assert(err, IsNil)
|
||||
c.Assert(objectList[0], Equals, storage.ObjectDescription{Path: "path3", IsDir: false, Hash: ""})
|
||||
c.Assert(len(objectList), Equals, 1)
|
||||
|
||||
objectList, err = objectStorage.List("/path1/path2/path3")
|
||||
c.Assert(err, Not(IsNil))
|
||||
c.Assert(objectList, IsNil)
|
||||
c.Assert(objectList[0].Name, Equals, "path1")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user