Requires YAML and FUSE for python to work (this is not the same as "python-fuse" package).
Install YAML for python as follows:
sudo apt-get install python-yaml
Install via pip:
sudo pip install b2fuse
Or install from code in development mode by executing in the base directory of this repository:
sudo python setup.py develop
If the above does not work (a possibility on Python 2.7), you can also install FUSE and the B2 Command Line Tool dependencies as follows:
sudo python -m pip install fusepy b2
Install dependencies for Python3 as follows:
sudo python -m pip install fusepy b2 pyyaml
Install B2Fuse itself for Python3:
sudo python setup.py install
You will need a config.yaml
file in the folder where you run the fuse driver.
An example config ("config.yaml"):
accountId: <youraccountid>
applicationKey: <yourapplicationid>
bucketId: <yourbucketid>
In order to use the FUSE driver as an interface to the online service B2 run:
b2fuse <mountpoint>
Full usage info:
usage: b2fuse [-h] [--enable_hashfiles] [--version] [--use_disk] [--debug]
[--account_id ACCOUNT_ID] [--application_key APPLICATION_KEY]
[--bucket_id BUCKET_ID] [--temp_folder TEMP_FOLDER]
[--config_filename CONFIG_FILENAME] [--allow_other]
mountpoint
positional arguments:
mountpoint Mountpoint for the B2 bucket
optional arguments:
-h, --help show this help message and exit
--enable_hashfiles Enable normally hidden hashes as exposed by B2 API
--version show program's version number and exit
--use_disk
--account_id ACCOUNT_ID
Account ID for your B2 account (overrides config)
--application_key APPLICATION_KEY
Application key for your account (overrides config)
--bucket_id BUCKET_ID
Bucket ID for the bucket to mount (overrides config)
--temp_folder TEMP_FOLDER
Temporary file folder
--config_filename CONFIG_FILENAME
Config file
Usage notes:
Go to the repostiory root directory, create a folder called mountpoint
and run the test by calling
python -m "b2fuse.tier1_tests"
Since there is no support for updating file times or permissions in a bucket, rsync must be told to ignore both when synching folders (sync will be based on checksum meaning files have to be downloaded to compare).
rsync -avzh --no-perms --no-owner --no-group dir1/ dir2/
Option "--inplace" may also be useful. RSync creates a temporary file when syncing, this option will make RSync update the file inplace instead (Effectively twice as fast syncing).
Again, we ignore permissions as these are not applicable.
unison dir1/ dir2/ -auto -perms 0 -batch
Install encfs (apt-get install encfs)
encfs <bucket_mountpoint> <encrypted_filesystem>
License: MIT license