1234567891011121314151617181920212223242526 |
- Design Assumptions:
- 1. the number of directories are magnitudely smaller than the number of files
- 2. unlimited number of files under any directories
- Phylosophy:
- metadata for directories and files should be separated
- Design:
- Store directories in normal map
- all of directories hopefully all be in memory
- efficient to move/rename/list_directories
- Log directory changes to append only log file
- Store files in sorted string table in <dir_id/filename> format
- efficient to list_files, just simple iterator
- efficient to locate files, binary search
- Testing:
- 1. starting server, "weed server -filer=true"
- 2. posting files to different folders
- curl -F "filename=@design.txt" "http://localhost:8888/sources/"
- curl -F "filename=@design.txt" "http://localhost:8888/design/"
- curl -F "filename=@directory.go" "http://localhost:8888/sources/weed/go/"
- curl -F "filename=@directory.go" "http://localhost:8888/sources/testing/go/"
- curl -F "filename=@filer.go" "http://localhost:8888/sources/weed/go/"
- curl -F "filename=@filer_in_leveldb.go" "http://localhost:8888/sources/weed/go/"
- curl "http://localhost:8888/?pretty=y"
- curl "http://localhost:8888/sources/weed/go/?pretty=y"
- curl "http://localhost:8888/sources/weed/go/?pretty=y"
|