CloudFS Save

The CloudFS library is a collection of .NET assemblies as gateways to various publicly accessible Cloud storage services.

Project README

CloudFS

The CloudFS library is a collection of .NET assemblies as gateways to various publicly accessible Cloud storage services.

License Release Version NuGet downloads NuGet downloads (signed)

Branch Build status Code coverage Code analysis Quality gate
master Build status Coverage Code analysis Quality Gate
develop Build status Coverage see above see above

Objective

This library provides access to file system operations of various publicly accessible Cloud storage services behind a common interface. It thus facilitates the flexible integration of Cloud storage into arbitrary .NET applications.

Supported Cloud storage services

Consideration of a cloud storage service as a target for CloudFS depends on these conditions:

  • free storage space quota of at least 10 GB
  • file expiration period no shorter than 90 days for free users
  • alternatively, in response to a stated interest by the community, a cloud storage service may be included despite shortcomings in the preceding aspects
  • availability of a .NET-accessible API under a non-invasive open source license (Apache, MIT, MS-PL)

Currently the following cloud storage services are supported in CloudFS via the specified API libraries:

Cloud storage service API library version sync/async origin status max. file size1
(local files) System.IO (.NET Framework) N/A sync stable N/A
Google Drive Google Apis V3 1.28.0.953 async official stable >= 256 MB
Box Box.V2 3.1.0 async official stable 128 MB
hubiC SwiftClient 2.0.0-beta-0016 async 3rd party stable 160 MB
MediaFire MediaFire SDK 1.0.0.3 async 3rd party / local build experimental 12 MB
MEGA MegaApiClient 1.6.0 async 3rd party stable >= 256 MB
pCloud pCloud.NET N/A async 3rd party / local build stable 16 MB
WebDAV5 WebDAV Client 2.0.1 async 3rd party stable >= 256 MB
Yandex Disk Yandex Disk API Client 1.2.11 async 3rd party stable >= 256 MB
Degraded services
Microsoft OneDrive2 OneDrive SDK for CSharp 2.0.7 async official stable >= 256 MB
Included by community request
Google Cloud Storage Google Cloud Libraries for .NET 2.1.0-alpha02 async official experimental >= 256 MB
Superseded services
Microsoft OneDrive OneDrive SDK for CSharp 1.2.0 async official stable 48 MB
Microsoft OneDrive OneDriveSDK3 N/A async inofficial obsolete 48 MB
Google Drive Google Apis V2 1.28.0.953 async official stable >= 256 MB
Obsolete services
Copy4 CopyRestAPI 1.1.0 async 3rd party retired N/A

1 Maximum supported file size for upload through the respective cloud API.
This is a non-authoritative value determined through unit tests. ^
2 Following Microsoft's November 2nd, 2015 announcement of its "OneDrive storage plans change in pursuit of productivity and collaboration" the OneDrive cloud storage service will fail to meet the above stated requirements for support in CloudFS after mid-July 2016.
Despite this unprecedented and highly objectionable degradation of service quality, OneDrive will continue to be supported by CloudFS for historical reasons. ^
3 This version of OneDriveSDK has been deprecated by Microsoft. ^
4 The Copy cloud storage service was discontinued as of May 1st 2016 according to this announcement.
The Copy gateway has therefore been retired from CloudFS. ^
5 WebDAV-based cloud storage is available through various public cloud providers or by self-hosting an OwnCloud private cloud. ^

System Requirements

  • Platform
    • .NET 4.6.2
  • Operating system
    • tested on Windows 8.1 x64 and Windows Server 2012 R2 (until version 1.0.0-alpha) /
      Windows 10 x64 (from version 1.0.1-alpha)
    • expected to run on Windows 7/8/8.1/10 and Windows Server 2008(R2)/2012(R2)/2016

Local compilation

Several cloud storage services require additional authentication of external applications for access to cloud filesystem contents.
For cloud storage services with this kind of authentication policy in place you need to take the following steps before compiling CloudFS locally:

  • register for a developer account with the respective cloud service
  • create a cloud application configuration with sufficient rights to access the cloud filesystem
  • enter the service-provided authentication details into the prepared fields in the Secrets class of the affected PowerShellCloudProvider gateway project

At the time of writing this Readme, the following URLs provided access to application management tasks such as registering a new application or changing an application's configuration:

Cloud storage service Application registration / configuration URL
Microsoft OneDrive Microsoft Account - Developer Center
Google Drive Google Developers Console
Box Box Developers Services
hubiC Develop hubiC applications
MediaFire MediaFire - Developers
MEGA Mega Core SDK - Developers
pCloud - no configuration required -
WebDAV - no configuration required -
Yandex Disk Yandex OAuth Access
Google Cloud Storage Google Cloud Platform Console
Obsolete
Copy Copy Developers - Applications

Release Notes

Date Version Comments
2017-03-31 1.0.11-beta - Version updates to API libraries for various cloud services.
- Moved legacy gateways to separate NuGet package.
- Switched to Polly for error retry functionality in gateways.
2016-10-05 1.0.10.1-beta - Fixed NuGet packages.
2016-10-01 1.0.10-beta - New gateway for Google Cloud Storage added.
- Fixed drive free space calculation for Yandex gateway.
- Version update to API libraries for Box, Google Drive, and Yandex.Disk.
2016-08-31 1.0.9.1-alpha - Fixed NuGet packages.
2016-08-29 1.0.9-alpha - Implemented settings purge function in gateways.
- Version updates to API libraries for Box and OneDrive.
2016-08-26 1.0.8-alpha - New gateway for generic WebDAV providers added.
- Support AES encryption of account credentials and access tokens in locally persisted application settings.
- Fixed concurrent access to locally persisted application settings.
- Version updates to API libraries for Box, Google Drive, SwiftClient, and SemanticTypes.
- Activated static code analysis via Coverity Scan.
2016-08-07 1.0.7-alpha - Added an explicit authentication method for cloud gateways. All other gateway methods still require successful authentication to the cloud service. Note: This breaks compatibility with the previous versions of ICloudGateway and IAsyncCloudGateway.
- Migrated gateway for Google Drive and OneDrive to Google Drive API v3 and OneDriveSDK, respectively (previously used API libraries remain available via *_Legacy gateways).
- MediaFire gateway now supports session token v2 (lifetime 2 years instead of 10 minutes)
- OneDrive gateway now supports creation of empty files.
- Fixed cross-thread marshalling of authentication tokens.
- Version updates to API libraries for Box, Google Drive, OneDrive
2016-05-20 1.0.6-alpha - Fixed broken package references in NuGet specs (present since 1.0.3-alpha)
- Version update to API library for Box
2016-05-18 1.0.5-alpha - Retired gateway for Cloud
- Version update to API library for Google Drive
- Support for Windows Explorer new file creation sequence in MEGA
- Improved online editing capability in non-encrypting File gateway
2016-04-17 1.0.4-alpha - New gateway for hubiC/Swift added.
- Version updates to API libraries for Google Drive, MEGA, and Yandex Disk.
- Converted Mega gateway to Async operation mode.
- Gateways now explicitely declare their capabilities in the ExportMetadata.
- Improvements to login window handling if logins are requested for multiple drives.
- Various bug fixes.
2016-02-01 1.0.3-alpha - New gateways for MediaFire and Yandex Disk added.
2016-01-24 1.0.2-alpha - Gateway configuration extended to accept custom parameters. This change breaks compatibility with earlier API versions.
- File Gateway now configurable with target root directory
2016-01-19 1.0.1-alpha - NuGet dependencies updated, schema of App.config in tests project refactored
2016-01-08 1.0.0-alpha - Initial release and NuGet registration
2015-12-29 1.0.0.0 - Initial commit

Future plans

  • include additional gateways for more Cloud storage services
  • improve stability of large file uploads
Open Source Agenda is not affiliated with "CloudFS" Project. README Source: viciousviper/CloudFS
Stars
79
Open Issues
2
Last Commit
6 years ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating