jotfs

module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 11, 2020 License: Apache-2.0

README

JotFS

Build Status codecov Go Report Card Gitter

JotFS is a deduplicating file storage engine backed by S3. It works by splitting incoming files into small content-defined chunks and only storing those chunks which it has not seen yet.

For a short explanation of how JotFS works, please see the introductory article.

Features:

  • Reduces storage space
  • Reduces upload bandwidth
  • Backed by S3 or S3 compatible storage (Minio, Azure blob, GCP etc.)
  • Client library available for Go (more languages planned)
  • Client CLI with familiar commands: jot cp, jot ls etc.
  • Optional file versioning
  • Easy deployment with a single binary or Docker image

JotFS is currently beta level software.

Install

Docker
docker pull jotfs/jotfs
Linux Binary

Download the latest binary from the releases page and extract. Example:

gzip -dc ./jotfs_linux_amd64_v0.0.3.gz > jotfs
chmod +x ./jotfs
./jotfs -version
Source
git clone https://github.com/jotfs/jotfs.git
cd jotfs
CGO_ENABLED=1 go build ./cmd/jotfs

Quickstart

Using AWS S3 backed storage (see the wiki for more examples and advanced configuration):

jotfs -store_bucket="jotfs-test"

Use the jot CLI to interact with the server:

jot cp data.txt jot://data.txt

jot ls /

jot cp jot://data.txt data_download.txt

The server stores metadata in a database file located at ./jotfs.db by default. When running the Docker image, you should mount a volume to /app in the container so the database is persisted between runs:

docker run -v jotfs:/app jotfs/jotfs <FLAGS...>

Contributing

Contributions to JotFS and its client applications are welcome. Please open an issue if you would like to report bugs or suggest new features.

License

JotFS is licensed under the Apache 2.0 License. See LICENSE for details.

Directories

Path Synopsis
cmd
internal
db
Code generated by /packsql.py -- DO NOT EDIT
Code generated by /packsql.py -- DO NOT EDIT
log
protos
Package protos is a generated twirp stub package.
Package protos is a generated twirp stub package.
sum

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL