forked from TurboGit/hubicfuse
-
Notifications
You must be signed in to change notification settings - Fork 0
Support for mounting HubiC drive in GNU/Linux
License
gtrs/hubicfuse
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
HubicFuse is 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: https://github.com/LabAdvComp/cloudfuse.git BUILDING: You'll need libcurl, fuse, libssl, and libxml2 (and probably their dev packages) installed to build it. For CentOS or similar: $ yum install gcc make fuse-devel curl-devel libxml2-devel \ openssl-devel json-c-devel file-devel $ PKG_CONFIG_PATH=/lib64/pkgconfig ./configure For GNU/Debian or Ubuntu: $ sudo apt install gcc make curl libfuse-dev pkg-config \ libcurl4-openssl-dev libxml2-dev libssl-dev libjson-c-dev \ libmagic-dev $ ./configure Then just compile and install: 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] 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, 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. * File copy progress when uploading does not work, progress is shown when file is copied in local cache, then upload operation happens at 100% Recent additions/fixes: * 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 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 * Matt Greenway https://github.com/LabAdvComp * Dan Cristian https://github.com/dan-cristian Thanks, and I hope you find it useful. Pascal Obry <[email protected]>
About
Support for mounting HubiC drive in GNU/Linux
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- C 74.6%
- Shell 25.4%