Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


A FUSE application which provides access to hubiC's cloud files via a mount-point.

This version contains support for DLO, symlinks and support to see other tenant's containers.
Those features are coming from


You'll need libcurl, fuse, libssl, and libxml2 (and probably their development packages) installed to build it.

For CentOS and other RedHat-based systems:

yum install gcc make fuse-devel curl-devel libxml2-devel \
    openssl-devel json-c-devel file-devel

PKG_CONFIG_PATH=/lib64/pkgconfig ./configure

For Debian GNU/Linux and Ubuntu:

sudo apt install gcc make curl libfuse-dev pkg-config \
    libcurl4-openssl-dev libxml2-dev libssl-dev libjson-c-dev libmagic-dev


Then just compile and install:

sudo make install


Your hubiC Cloud configuration can be placed in a file named $HOME/.hubicfuse. All the following variables are required:

client_id=[hubiC client id for the registered application]
client_secret=[hubiC client secret for the registered application]
refresh_token=[A refresh token you got from the script]

Optional variables:

get_extended_metadata=[true/false, force download of additional file metadata like atime and mtime on first directory list]
curl_verbose=[true/false, enable verbose output for curl HTTP requests]
curl_progress_state=[true/false, enable verbose progress output for curl HTTP requests. Used for debugging.]
cache_statfs_timeout=[value in seconds, large timeout increases the file access speed]
debug_level=[0 default, 1 extremely verbose for debugging purposes]
enable_chmod=[true/false, false by default, still experimental feature]
enable_chown=[true/false, false by default, still experimental feature]

client_id and client_secret can be retrieved from the hubiC web interface

The refresh_token can be obtained running the script provided (hubic_token) or with any other method you like if you follow the example at

Then you can call hubicfuse:

sudo hubicfuse /mnt/hubic -o noauto_cache,sync_read,allow_other

And finaly, it can be set in /etc/fstab:

hubicfuse /mnt/hubic fuse user,noauto 0 0

It also inherits a number of command-line arguments and mount options from the Fuse framework. The "-h" argument should provide a summary.

It is also possible to pass a custom hubicfuse settings file so that it is possible to mount multiple hubiC accounts:

sudo hubicfuse /mnt/hubic1 -o noauto_cache,sync_read,allow_other,settings_filename=/root/hubic/account1.settings
sudo hubicfuse /mnt/hubic2 -o noauto_cache,sync_read,allow_other,settings_filename=/root/hubic/account2.settings

And finaly, in /etc/fstab :

hubicfuse /mnt/hubic1 fuse user,noauto,settings_filename=/root/hubic/account1.settings 0 0
hubicfuse /mnt/hubic2 fuse user,noauto,settings_filename=/root/hubic/account2.settings 0 0


Add the user into the fuse group:

sudo usermod -a -G fuse [username]

Mount using the above command without the sudo. The .hubicfuse file is searched in the user's home.

To unmount use:

fusermount -u [chemin]


hubiC protocol has no support for renaming. So be sure to use the --inplace option to avoid a second upload for every uploaded object.


* A segment size is limited to 5Gb (this is not hubicfuse limit, but hubiC implementation).
  So segment_above should never exceed 5Gb.
* rename() doesn't work on directories (and probably never will).
* When reading and writing files, it buffers them in a local temp file.
* It keeps an in-memory cache of the directory structure, so it may not be
  usable for large file systems.  Also, files added by other applications
  will not show up until the cache expires.
* The root directory can only contain directories, as these are mapped to
  containers in cloudfiles.
* Directory entries are created as empty files with the content-type
* Cloud Files limits container and object listings to 10,000 items.
  cloudfuse won't list more than that many files in a single directory.
* File copy progress when uploading does not work, progress is shown when
  file is copied in local cache, then upload operation happens at 100%


* Support for atime, mtime, chmod, chown.
* Large files (segmented) have correct size listed (was 0 before).
* Multiple speed improvements, minimised the number of HTTP calls and added more caching features.
* Fixed many segmentation faults.
* Cached files are deleted on cache expiration when using a custom temp folder.
* Files copied have attributes preserved.
* Working well with rsync due to mtime support and proper copy operations.
* Debugging support for http progress (track upload / download speed etc.)
* Reduced traffic, skips file uploads to cloud if content does not change (using md5sum compare)
* Major code refactoring, code documentation, extensive debugging, additional config options
* Support for custom hubicfuse settings file in order to mount multiple accounts


* Pascal Obry              
* Tim Dysinger             
* Chris Wedgwood           
* Nick Craig-Wood          
* Dillon Amburgey          
* Manfred Touron           
* David Brownlee           
* Mike Lundy               
* justinb                  
* Matt Greenway            
* Dan Cristian             
* Nicolas Cailleaux        

Thanks, and I hope you find it useful.

Pascal Obry


Support for mounting HubiC drive in GNU/Linux







No packages published