Commit 38c8734c authored by Paweł Wegner's avatar Paweł Wegner
Browse files

Reformatted README.md.

parent f6ef2851
# libcloudstorage
C++ library providing access to files located in cloud services
licensed under GNU LGPLv2.1.
`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)
* `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
* `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)
* `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:
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
* `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
Optional 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
* `./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.
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
* `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
* `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`
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment