# Customizable external storage for applications

Application writers should have an easy mechanism for their applications to store data accessible for multiple devices. This would remove the requirement of many application writers to run backend services for their applications, which can add significant cost and complexity.

Storage backends should implement a standard interface so that applications can request access to a specific folder within the storage.

Libraries should implement clients for this interface, so that an application writer can add this functionality easily to their application.

Example storage backends could be proprietary services like Google Drive or iCloud, open services like Nextcloud, or even adapters for standards such as S3.

Libraries should be available for web applications, desktop applications, mobile applications, and others.

## Nextcloud

=> https://docs.nextcloud.com/server/stable/user_manual/en/files/access_webdav.html#accessing-public-shares-over-webdav Nextcloud has a clunky way to achieve this using public shares and WebDAV.

=> https://github.com/nextcloud/documentation/pull/15781 However, the documentation has a small inaccuracy that requires fixing before the instructions work.

=> https://github.com/nextcloud/server/issues/3131#issuecomment-5386010411 But likely due to CORS, this cannot be used from a browser.

=> https://github.com/nextcloud/server/issues/2866#issuecomment-1032304227 There's an issue to create a more proper feature.

## Prior art

=> https://github.com/nexryai/google-drive-s3 Exposes Google Drive storage with an S3 API
=> https://remotestorage.io/ Standard for doing this. Very limited Google Drive and Dropbox support, uses specific servers
=> https://github.com/chris-wolf/multi_cloud_storage Flutter plugin for Google Drive, iCloud, Dropbox, and OneDrive

=> ../../contact Contact me.
=> https://github.com/alexpdp7/alexpdp7/edit/master/blog/content/notes/tech/customizable-external-storage-for-applications.gmi Edit this page.
=> ../ Go to parent.
