viciousviper / CloudFS

The CloudFS library is a collection of .NET assemblies as gateways to various publicly accessible Cloud storage services.
MIT License
79 stars 26 forks source link

Add a Cloud Storage Server gateway interface #10

Open cubiclesoft opened 8 years ago

cubiclesoft commented 8 years ago

I only dabble a little in C# now and then, so it might not necessarily be advisable to let me write a library for CloudFS for the Cloud Storage Server:

http://barebonescms.com/documentation/cloud_storage_server/

It's a self-hosted cloud storage API. Having it be mountable as a drive letter in Windows sounds like an interesting use for it.

The system more or less meets your criteria for inclusion minus the .NET library bit. I could author a .NET library if you point me at your favorite SDK(s) that you liked/enjoyed integrating with the most within CloudFS/DokanCloudFS. However, you are probably better situated to write it since you know your own system and a library would have to be written anyway.

viciousviper commented 8 years ago

From just a short look into the URL you quoted I get the impression that Barebones CMS does not quite fall inside the parameters supported by CloudFS because there is no publicly accessible hosted service.

I totally understand the appeal of integrating a self hosted storage into Windows - however it would be very difficult for me to develop against such a service when I can't run tests or debug in a live environment.

If you would like to contribute a CloudFS gateway I recommend that you implement an async gateway (all existing gateways but the File gateway are async) and stay within the Microsoft provided System.* assemblies of .NET 4.6.1 as much as possible - Newtonsoft.Json being one notable exception.

Due to the fairly comprehensive suite of unit tests implemented in CloudFS it is actually pretty straightforward to implement a gateway and ensure that it works correctly. For the access library to Barebones CMS it might help to look at the SwiftClient library used in the hubiC gateway.

cubiclesoft commented 8 years ago

The Cloud Storage Server is its own self-contained product written in PHP. I just put the documentation for it on the Barebones CMS website out of laziness. Maybe I should have linked to the GitHub repo instead:

https://github.com/cubiclesoft/cloud-storage-server

And the PHP SDK for it which I forgot to link to in my original request:

https://github.com/cubiclesoft/cloud-backup/blob/master/support/sdk_cloud_storage_server_files.php

Sorry for any confusion there.

Cloud Storage Server can be run from localhost on a command-line on a development machine where it emits fairly detailed information. The only requirement is that PHP (with SQLite support enabled) has to be available on the same machine. No Apache required as it provides its own web server written in PHP. If you don't have PHP installed, there are multiple options. I prefer portable apps when operating under Windows so I also made this repo:

https://github.com/cubiclesoft/portable-apache-maria-db-php-for-windows

If I get some time and you haven't beat me to it, I'll see what I can put together. I'm familiar with Newtonsoft.Json and have used it in several C# projects. It's a pretty nice library. I'm not sure about whether or not I stuck to System.* assemblies though. On my other projects, I mostly copy-pasta'ed my way to functional libraries. At the moment, I'm plodding my way through an extensive project list for the year.