FUSE integration for Backblaze B2 Cloud storage
Project description
# b2_fuse - FUSE for Backblaze B2
### Version: 1.3
#### This is fresh release based upon B2 Command line tool's API for B2.
#### Warning this software may contain bugs, be careful of using it with important data.
#### Please report bugs, use-case issues and feature requests through the Github issue tracker
### Basic setup:
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 FUSE and B2 Command Line Tool for python as follows:
```
sudo apt-get install python-pip
sudo pip install fusepy
sudo pip install b2
```
If the above does not work (a possibility on Python 2.7) use this instead:
```
sudo python -m pip install fusepy
sudo python -m pip install b2
```
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:
```
python b2fuse.py <mountpoint>
```
Full usage info:
```
usage: b2fuse.py [-h] [--enable_hashfiles] [--version] [--use_disk]
[--account_id ACCOUNT_ID] [--application_key APPLICATION_KEY]
[--bucket_id BUCKET_ID] [--temp_folder TEMP_FOLDER]
[--config_filename CONFIG_FILENAME]
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:
* Can be used as a regular filesystem, but should not (high latency)
* Files are cached in memory or on disk. If using memory you are limited by the available memory, swapping will occur for very large files.
* Neither permissions or timestamps are supported by B2. B2_fuse ignores any requests to set permissions.
* Filesystem contains ".sha1" files, these are undeletable and contain the hash of the file without the postfix. This feature can be disabled by setting variable "enable_hashfiles" to False.
* For optimal performance and throughput, you should store a few large files. Small files suffer from latency issues due to the way B2 API is implemented. Large files will allow you to saturate your internet connection.
### Application specific notes:
#### Using RSync with B2 Fuse
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).
#### Using unison to synchronize against mounted folder
Again, we ignore permissions as these are not applicable.
```
unison dir1/ dir2/ -auto -perms 0 -batch
```
#### Using encfs to overlay a locally encrypted filesystem onto the bucket
Install encfs (apt-get install encfs)
```
encfs <bucket_mountpoint> <encrypted_filesystem>
```
#### Instruction for permanent mounting of B2Fuse can be found [here](../master/permanent_mount.md)
### Known issues:
* Concurrent access from multiple client will lead to inconsistent results
* Small files give low read/write performance (due to high latency)
* Some text editors may return odd characters when viewing the ".sha1" files. Use cat for reliable operation.
License: MIT license
### Version: 1.3
#### This is fresh release based upon B2 Command line tool's API for B2.
#### Warning this software may contain bugs, be careful of using it with important data.
#### Please report bugs, use-case issues and feature requests through the Github issue tracker
### Basic setup:
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 FUSE and B2 Command Line Tool for python as follows:
```
sudo apt-get install python-pip
sudo pip install fusepy
sudo pip install b2
```
If the above does not work (a possibility on Python 2.7) use this instead:
```
sudo python -m pip install fusepy
sudo python -m pip install b2
```
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:
```
python b2fuse.py <mountpoint>
```
Full usage info:
```
usage: b2fuse.py [-h] [--enable_hashfiles] [--version] [--use_disk]
[--account_id ACCOUNT_ID] [--application_key APPLICATION_KEY]
[--bucket_id BUCKET_ID] [--temp_folder TEMP_FOLDER]
[--config_filename CONFIG_FILENAME]
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:
* Can be used as a regular filesystem, but should not (high latency)
* Files are cached in memory or on disk. If using memory you are limited by the available memory, swapping will occur for very large files.
* Neither permissions or timestamps are supported by B2. B2_fuse ignores any requests to set permissions.
* Filesystem contains ".sha1" files, these are undeletable and contain the hash of the file without the postfix. This feature can be disabled by setting variable "enable_hashfiles" to False.
* For optimal performance and throughput, you should store a few large files. Small files suffer from latency issues due to the way B2 API is implemented. Large files will allow you to saturate your internet connection.
### Application specific notes:
#### Using RSync with B2 Fuse
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).
#### Using unison to synchronize against mounted folder
Again, we ignore permissions as these are not applicable.
```
unison dir1/ dir2/ -auto -perms 0 -batch
```
#### Using encfs to overlay a locally encrypted filesystem onto the bucket
Install encfs (apt-get install encfs)
```
encfs <bucket_mountpoint> <encrypted_filesystem>
```
#### Instruction for permanent mounting of B2Fuse can be found [here](../master/permanent_mount.md)
### Known issues:
* Concurrent access from multiple client will lead to inconsistent results
* Small files give low read/write performance (due to high latency)
* Some text editors may return odd characters when viewing the ".sha1" files. Use cat for reliable operation.
License: MIT license
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
b2fuse-1.3.tar.gz
(14.0 kB
view details)
File details
Details for the file b2fuse-1.3.tar.gz
.
File metadata
- Download URL: b2fuse-1.3.tar.gz
- Upload date:
- Size: 14.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e07281f54ae294a05e132e3248c120f48db25dc6202c4b5bec1357205903bdb8 |
|
MD5 | 0cfaa9e40e73fec25e44bb40335a630a |
|
BLAKE2b-256 | 67e66884773918f9d05cd7a73d9c89e55caf0bf37b82022d144f6da407d75da1 |