BorgQueen.CloudFS.Interfaces
0.0.2
See the version list below for details.
dotnet add package BorgQueen.CloudFS.Interfaces --version 0.0.2
NuGet\Install-Package BorgQueen.CloudFS.Interfaces -Version 0.0.2
<PackageReference Include="BorgQueen.CloudFS.Interfaces" Version="0.0.2" />
paket add BorgQueen.CloudFS.Interfaces --version 0.0.2
#r "nuget: BorgQueen.CloudFS.Interfaces, 0.0.2"
// Install BorgQueen.CloudFS.Interfaces as a Cake Addin #addin nuget:?package=BorgQueen.CloudFS.Interfaces&version=0.0.2 // Install BorgQueen.CloudFS.Interfaces as a Cake Tool #tool nuget:?package=BorgQueen.CloudFS.Interfaces&version=0.0.2
CloudFS
The CloudFS library is a collection of .NET assemblies as gateways to various publicly accessible Cloud storage services.
Branch | Build status | Code coverage | Code analysis | Quality gate |
---|---|---|---|---|
master | ||||
develop | 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 | Versions 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. |
-
.NETStandard 2.0
- SemanticTypes.Standard (>= 0.0.2)
- System.Composition (>= 6.0.0)
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.