百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
Z

zero

> 编程语言
开源

本地文件系统可透明地切换到云端

770 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

本地文件系统可透明地切换到云端

Zero

Fuse filesystem backed by backblaze cloud storage and transparent local persistent hard-drive cache.

Ideally, it feels like an infinite local file system because it keeps those files local that are used while moving those files to the remote storage that haven't been accessed in a long time.

Hard links are not supported

Zero operates on a abstraction of files being addressed by paths. In order to offer hard good hard link support, one would need to instead choose an inode abstraction level, where multiple paths map to the same inode, which then addresses the file.

Unfortunately, fuse does not seem to support a true inode-level API. For example an inode-level API would not require to implement a move operation, as this would be an operation handled on the path->inode mapping level.

One could imagine building an adapter that translates from fuse into an inode-level API.

This may be a project for a later date.

State of Development

This is WORK IN PROGRESS

There are a few known issues and race conditions. For example, the ctime on the files may be newer than the correct value. Also, writes and reads are slow. Do not use in production.

Setup

Create a config.yml:

accountId: [...]
applicationKey: [...]
bucketId: [...]
sqliteFileLocation: [...]
targetDiskUsage: [...]

and save in ~/.config/zero/

Here, accountId, applicationKey and bucketId are the corresponding backblaze settings and sqliteFileLocation is simply the path to a place where the sqlite databases containing the state of the virtual file system can be stored. targetDiskUsage is the amount of disk space (in GB) that you would like to use for local caching.

Install with python setup.py develop

Usage

Run

zero-fuse  

to mount the file system. You will also need to run

zero-worker 

to start the worker process that moves files between disk and cloud.

Testing

Run the tests with pytest like this: py.test

There are 3 categories of tests:

  • Unit tests are testing the code on the function level
  • Integration tests are testing the interactions between bigger parts of the code and outside APIs. They may use the internet.
  • System tests are testing the software as a black box. They should continue working through a big refactor or even if everything was re-written in a different programming language. (There are no system tests yet as of now.)

To run the system tests, first clear all data and start zero like this:

debug-delete-everything ~/playground/mountpoint ~/playground/to && zero ~/playground/mountpoint ~/playground/to

Then run the tests:

py.test zero/tests/system_tests

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Python

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言