
HubicFuse is a FUSE application which provides access to Hubic's
cloud files via a mount-point.

BUILDING:

    You'll need libcurl, fuse, libssl, and libxml2 (and probably their dev
    packages) installed to build it.  From a base Debian or Ubuntu install,
    this should get you to a point you can build and run it:
        apt-get install build-essential libcurl4-openssl-dev libxml2-dev \
             libssl-dev libfuse-dev libjson0-dev pkg-config

    For CentOS or similar,
        yum install gcc make fuse-devel curl-devel libxml2-devel \
            openssl-devel json-c-devel

    For Debian or Ubuntu,
        apt-get install gcc make libfuse-dev libcurl-dev \
            libcurl4-openssl-dev libxml2-dev libssl-dev libjson-c-dev

    Cloudfuse is built and installed like any other autoconf configured code.
    Normally,
        ./configure
        make
        sudo make install

USE:

    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]

    client_id, client_secret can be retrieved from the hubic
    web interface: https://hubic.com/home/browser/developers/

    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 https://api.hubic.com

    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.

USE AS NON-ROOT:

    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 into the user's home.

    To unmount use:

       $ fusermount -u [chemin]

BUGS/SHORTCOMINGS:

    * 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
      "application/directory".
    * Cloud Files limits container and object listings to 10,000 items.
      cloudfuse won't list more than that many files in a single directory.


AWESOME CONTRIBUTORS:

    * Pascal Obry                                  https://github.com/TurboGit
    * Tim Dysinger                                 https://github.com/dysinger
    * Chris Wedgwood                               https://github.com/cwedgwood
    * Nick Craig-Wood                              https://github.com/ncw
    * Dillon Amburgey                              https://github.com/dillona
    * Manfred Touron                               https://github.com/moul
    * David Brownlee                               https://github.com/abs0
    * Mike Lundy                                   https://github.com/novas0x2a
    * justinb                                      https://github.com/justinsb


Thanks, and I hope you find it useful.

Pascal Obry
<pascal@obry.net>
