rhinouser0 / riverpass

A handy local disk based cache for hot content from remote storage.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

简体中文 | English

Riverpass | Documentation

GitHub license

A handy file cache service

$ wget http://localhost:getFile?url=$YOUR_REMOTE_URL
  • Cache for hot content from remote cloud object storage(or public image)
  • Extremely simple start and stop command, no heavy configuration
  • Cache item persistence ability: previous items will be reloaded after server restart

Design

Detailed design document

Docker Image

docker load -i oss.tar
  • Load database config in server folder
tar -xvf data.tar

HowTo

  • How to use
    • Enter server folder, run ./oss_docker_start.sh 100, '100' means cache size 100MB. Cache data default flushes to server/localfs_oss/ folder.
    • Use wget <url> command, replacing host path by localhost and cache port. eg.: wget http://localhost:10009/getFile?url=https://raw.githubusercontent.com/open-mmlab/mmdeploy/master/resources/mmdeploy-logo.png
    • Run ./oss_docker_stop.sh to stop the cache. Data will be left on disk.
    • Run ./oss_docker_restart.sh to restart the cache, data and their metadata will be loaded.
  • How to build
    • Enter server/holder folder, run ./oss_start.sh to build the go program and start server for debug.
  • How to contribute

Dependency

  • MySQL 8.0
  • Aliyun OSS SDK

Coming Soon

  • CI and test coverage
  • Stale metadata GC in DB
  • OSS download optimization
  • Object service from other cloud provider
  • Cache eviction algorithm improvement

Contact Us

License

About

A handy local disk based cache for hot content from remote storage.

License:Apache License 2.0


Languages

Language:Go 98.6%Language:Shell 1.1%Language:Dockerfile 0.3%