L

libcloudstorage

Name Last Update
examples Loading commit data...
m4 Loading commit data...
src Loading commit data...
test Loading commit data...
COPYING Loading commit data...
Doxyfile.in Loading commit data...
Makefile.am Loading commit data...
README.md Loading commit data...
bootstrap Loading commit data...
configure.ac Loading commit data...

libcloudstorage

C++ library providing access to files located in cloud services
licensed under GNU LGPLv2.1.

Supported cloud providers:

  • GoogleDrive
  • OneDrive
  • Dropbox
  • AmazonDrive
  • box.com
  • YandexDisk
  • OwnCloud
  • mega.nz
  • AmazonS3
  • YouTube (partial)

Supported operations on files:

  • list directory
  • download file
  • upload file
  • get thumbnail
  • delete file
  • create directory
  • move file
  • rename file
  • fetch direct, preauthenticated url to file

Requirements:

  • libmicrohttpd
  • jsoncpp
  • tinyxml2
  • cURL (with OpenSSL/c-ares, optional)
  • libcryptopp (optional)
  • mega (optional, required for mega.nz)

Platforms:

The library can be build on any platform which has a proper C++11 support.
It was tested under the following operating systems:

  • Ubuntu 16.04
  • Windows 10
  • Android 5.0.2

Building:

The generic way to build and install it is:

  • ./bootstrap
  • ./configure
  • make
  • sudo make install

./configure flags:

  • --with-cryptopp: library will use cryptopp's hashing functions, without
    this flag user will have to implement ICrypto's interface and pass it to
    ICloudProvider's initialize method
  • --with-curl: library will use curl to make all http requests, without
    this user will have to implement IHttp interface
  • --with-thumbnailer: library will use ffmpegthumbnailer to generate
    thumbnails for files which don't have them provided by the cloud storage
    service, without this flag user may provide his own thumbnailer engine by
    implementing IThumbnailer interface
  • --with-mega=no: if you don't have access to Mega SDK, pass this flag to
    build libcloudstorage without it

Cloud Browser:

Optionally, you can build an example program which provides easy graphics user
interface for all the features implemented in libcloudstorage. You just
have to pass --with-examples to ./configure. Cloud browser also allows
playing streams from cloud providers, by default it uses qml player as a
multimedia player (--with-qmlplayer). You can choose libvlc as a player
with --with-vlc or Qt5MultimediaWidgets based player with
--with-qtmultimediawidgets.

It requires:

  • Qt5Core
  • Qt5Gui
  • Qt5Quick
  • Qt5Multimedia if --with-qmlplayer (default)
  • Qt5Widgets, Qt5Multimedia, Qt5MultimediaWidgets if
    --with-qtmultimediawidgets
  • libvlcpp, libvlc, Qt5Widgets if --with-vlc
  • libcloudstorage built with at least cURL

TODO:

Implement following cloud providers:

  • Asus WebStorage
  • Baidu Cloud
  • CloudMe
  • FileDropper
  • Fileserve
  • Handy Backup
  • IBM Connections
  • Apple ICloud
  • Infinit
  • Jumpshare
  • MagicVortex
  • MediaFire
  • Pogoplug
  • SpiderOak
  • SugarSync
  • Tencent Weiyun
  • TitanFile
  • Tresorit
  • XXL Box