You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently we only have Kerberos Vault and Kerberos Hub integration implemented. However we would like to embrace other 3rd party tools such as Google Drive, Storj, Minio, Dropbox and others. With this open issue, we would like to request help from our community to implement more storage/persistence providers. We'll discuss here what is required to contribute to this feature.
Dropbox (by @cedricve) - currently not working with long lifetime tokens.
Google Drive
FTP
How to contribute
A detailed description is found below, describing the different parts that need to be added and modified. However a good PR (#96) can be found here.
Machinery (Golang/Backend/API)
Before implementing a new function make sure we know all the credentials/information that is required for creating a new provider. Have a look at the ./machinery/src/models/Config.go file, and add the additional information that you require. Also note that you'll need a new short name for your provider. For example Storj > storj or Dropbox > dropbox.
Implement a single upload function with following function description. The function expects a configuration object which holds the credentials of the relevant provider, and the fileName which refers to the file that we want to upload. The return statement (bool, bool, error) defines if the upload was successful, if the file can be removed from disk (it might be that we need to try again false or we don't need to upload it anymore true), and if any error occurred.
cedricve
changed the title
Add additional storage providers: Google Drive, Storj, Minio, Dropbox, etc.
Add additional storage providers: Google Drive, Storj, Minio, FTP, etc.
Apr 7, 2023
cedricve
changed the title
Add additional storage providers: Google Drive, Storj, Minio, FTP, etc.
Add additional storage providers: Google Drive, Storj, MinIO, FTP, etc.
Apr 7, 2023
May I also suggest to add WebDAV to the supported protocols? It would unlock the whole potential of integration with fully open-source and self-hosted solutions like Nextcloud.
Edit: I noticed now that it is already taken into account due to this line in Cloud.go. Maybe the list of "supported persistence" in this issue should be upgraded as well.
Currently we only have Kerberos Vault and Kerberos Hub integration implemented. However we would like to embrace other 3rd party tools such as Google Drive, Storj, Minio, Dropbox and others. With this open issue, we would like to request help from our community to implement more storage/persistence providers. We'll discuss here what is required to contribute to this feature.
Supported persistence:
How to contribute
A detailed description is found below, describing the different parts that need to be added and modified. However a good PR (#96) can be found here.
Machinery (Golang/Backend/API)
Before implementing a new function make sure we know all the credentials/information that is required for creating a new provider. Have a look at the
./machinery/src/models/Config.go
file, and add the additional information that you require. Also note that you'll need a newshort name
for your provider. For exampleStorj
>storj
orDropbox
>dropbox
.Create a new file in the
machinery
project:machinery/src/cloud
.Implement a single upload function with following
function
description. The function expects aconfiguration
object which holds the credentials of the relevant provider, and thefileName
which refers to the file that we want to upload. The return statement(bool, bool, error)
defines if the upload was successful, if the file can be removed from disk (it might be that we need to try againfalse
or we don't need to upload it anymoretrue
), and if any error occurred.Add a verify function, that will test if the configuration is working. This is called from the front-end by click the
Verify connection
button.Once implemented we need to adapt the upload logic in
./machinery/src/cloud/Cloud.go
. Extend theif
statement and add your new function.UI (Front-end)
Open the
ui/src/pages/Settings/Settings.jsx
file. Most of the work is done here.storageTypes
array with the new provider.ui/public/locales/
folder, make sure your labels/translation is copied to all the different translation files.The text was updated successfully, but these errors were encountered: