I have a specific use-case where I’d need to install Duplicati on client’s machines and periodically backup files to my S3/Google Storage buckets (upload only, no recovery).
Reading through the manuals, I take it that both
AWS S3 and
Google Storage are supported but only with public buckets or using access tokens/keys. Given the buckets are private and the configuration will be stored in (assumed insecure) clients’ systems, I can’t use access token/key information in plain text.
What I can, however, is fetch presigned upload URLs from an API using said clients’ credentials. I looked at
--run-script-before-required and related options, but couldn’t find a way to request the URL using it. The manual has a long list of providers, what hinted the possibility of creating a custom provider for my use case. This process would be basically:
- Fetch upload URL with an HTTP GET request using credentials
- Upload file (rarely over 100 mb) to that URL
- (Possibly) Send backup confirmation to previous server
I went over to the source code, and found the providers under
duplicati/Duplicati/Library/Backend/, but I have a couple of questions.
Am I overlooking any other, simpler way to do this?
Is there any documentation on how to develop providers? Are there any providers that make simple HTTP uploads available for reference?