I am C/C++/C# developer with 30 years experience writing a custom document creation & editing application.

Use cases:

I want:

1) to able to upload and download document files to and from the wide range of Cloud providers, including generic Apache mod_dav WebDAV servers.

2) to be able to expose the document files via publically-accessible URLs that can be accessed natively by other users of the providers’ clouds, as well as via the application.

3) (optionally) to be able to version the file so that previous versions may also be accessible (where a particular provider supports this feature).

4) (optionally) to be able to lock files to prevent unauthorised users from overwriting or even reading those files (where a particular provider supports this feature).


Whilst looking for appropriate technology infrastructure to use (based on HTTP using C/C++/C#) I have gone through a path that started with REST, went through WebDAV (Lisa Dusseault’s book was most helpful), neon, serf, OpenOffice and finally arrived at SME which looks promising.



Is there any SME documentation as to what settings parameters over and above (user, password) I need to supply for each Cloud provider?

In the case of WebDAV, how do I use the SME API to access a specific individual WebDAV server instance?

For WebDAV servers, what methods exist within the SME API to query/discover and specify the various Authentication schemes – Basic, Digest etc required for a particular WebDAV Server instance?

Does the SME API support methods to discover and query the Authentication schemes supported by a particular WebDAV server?

How do I programmatically determine whether a provider supports versioning and how do I specify different versions of a file to retrieve? Is this mechanism abstracted to a uniform mechanism across all providers that support versioning?


If I want to save a document file to a publically-exposed URL, how do I do this? How can I determine how to construct a valid URL to write to for the provider for a given user?


If I want to use the SME API to load from a previous specified public URL for a document, starting from the URL, how do I determine the provider’s internal folder + file name to load from the public URL provided?




Purley, Surrey, UK