BorgQueen.CloudFS.Interfaces 0.0.3

dotnet add package BorgQueen.CloudFS.Interfaces --version 0.0.3                
NuGet\Install-Package BorgQueen.CloudFS.Interfaces -Version 0.0.3                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="BorgQueen.CloudFS.Interfaces" Version="0.0.3" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add BorgQueen.CloudFS.Interfaces --version 0.0.3                
#r "nuget: BorgQueen.CloudFS.Interfaces, 0.0.3"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install BorgQueen.CloudFS.Interfaces as a Cake Addin
#addin nuget:?package=BorgQueen.CloudFS.Interfaces&version=0.0.3

// Install BorgQueen.CloudFS.Interfaces as a Cake Tool
#tool nuget:?package=BorgQueen.CloudFS.Interfaces&version=0.0.3                

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 size<sup id="a1">1</sup>
(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 3<sup>rd</sup> party stable 160 MB
MediaFire MediaFire SDK 1.0.0.3 async 3<sup>rd</sup> party / local build experimental 12 MB
MEGA MegaApiClient 1.6.0 async 3<sup>rd</sup> party stable >= 256 MB
pCloud pCloud.NET N/A async 3<sup>rd</sup> party / local build stable 16 MB
WebDAV<sup id="a5">5</sup> WebDAV Client 2.0.1 async 3<sup>rd</sup> party stable >= 256 MB
Yandex Disk Yandex Disk API Client 1.2.11 async 3<sup>rd</sup> party stable >= 256 MB
Degraded services
Microsoft OneDrive<sup id="a2">2</sup> 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 OneDriveSDK<sup id="a3">3</sup> N/A async inofficial obsolete 48 MB
Google Drive Google Apis V2 1.28.0.953 async official stable >= 256 MB
Obsolete services
Copy<sup id="a4">4</sup> CopyRestAPI 1.1.0 async 3<sup>rd</sup> party retired N/A

<sup><b id="f1">1</b></sup> Maximum supported file size for upload through the respective cloud API.<br/>This is a non-authoritative value determined through unit tests. ^<br/> <sup><b id="f2">2</b></sup> Following Microsoft's November 2<sup>nd</sup>, 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.<br/>Despite this unprecedented and highly objectionable degradation of service quality, OneDrive will continue to be supported by CloudFS for historical reasons. ^<br/> <sup><b id="f3">3</b></sup> This version of OneDriveSDK has been deprecated by Microsoft. ^<br/> <sup><b id="f4">4</b></sup> The Copy cloud storage service was discontinued as of May 1<sup>st</sup> 2016 according to this announcement.<br/>The Copy gateway has therefore been retired from CloudFS. ^<br/> <sup><b id="f5">5</b></sup> WebDAV-based cloud storage is available through various public cloud providers or by self-hosting an OwnCloud private cloud. ^<br/>

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) /<br/>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.<br/>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
<del>Copy</del> <del>Copy Developers - Applications</del>

Release Notes

Date Version Comments
2017-03-31 1.0.11-beta - Version updates to API libraries for various cloud services.<br/>- Moved legacy gateways to separate NuGet package.<br/>- 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.<br/>- Fixed drive free space calculation for Yandex gateway.<br/>- 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.<br/>- Version updates to API libraries for Box and OneDrive.
2016-08-26 1.0.8-alpha - New gateway for generic WebDAV providers added.<br/>- Support AES encryption of account credentials and access tokens in locally persisted application settings.<br/>- Fixed concurrent access to locally persisted application settings.<br/>- Version updates to API libraries for Box, Google Drive, SwiftClient, and SemanticTypes.<br/>- 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.<br/>- Migrated gateway for Google Drive and OneDrive to Google Drive API v3 and OneDriveSDK, respectively (previously used API libraries remain available via *_Legacy gateways).<br/>- MediaFire gateway now supports session token v2 (lifetime 2 years instead of 10 minutes)<br/>- OneDrive gateway now supports creation of empty files.<br/>- Fixed cross-thread marshalling of authentication tokens.<br/>- 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)<br/>- Version update to API library for Box
2016-05-18 1.0.5-alpha - Retired gateway for Cloud<br/>- Version update to API library for Google Drive<br/>- Support for Windows Explorer new file creation sequence in MEGA<br/>- Improved online editing capability in non-encrypting File gateway
2016-04-17 1.0.4-alpha - New gateway for hubiC/Swift added.<br/>- Version updates to API libraries for Google Drive, MEGA, and Yandex Disk.<br/>- Converted Mega gateway to Async operation mode.<br/>- Gateways now explicitely declare their capabilities in the ExportMetadata.<br/>- Improvements to login window handling if logins are requested for multiple drives.<br/>- 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.<br/>- 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
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on BorgQueen.CloudFS.Interfaces:

Package Downloads
BorgQueen.CloudFS.Dokan

DokanCloudFS library allows mounting various cloud storage services as virtual disks on Windows.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.0.3 160 6/3/2024
0.0.2 371 9/26/2023
0.0.1 229 9/19/2023