databacker / mysql-backup

image to enable automated backups of mysql databases in containers
648 stars 184 forks source link

Wishlist: Add rclone for uploading backup files #253

Open Ganneff opened 10 months ago

Ganneff commented 10 months ago

Hi

initially I wanted to only ask for a way to upload to a webdav based storage, but when looking at this, I found it might make more sense to ask what you think about inclusion of rclone (see https://rclone.org):

What do you think, is this a way to support?

It includes SMB and S3 as providers, of course, so it might save you some code. Also supports crypt (and currently experimental comprsssion), so would also easily add such features. Check https://rclone.org/#providers for the full (long) list if you are interested.

Greetings Ganneff

deitch commented 10 months ago

Now that is an interesting idea. Ironically, I have been working with @ncw, the creator of rclone on an entirely unrelated piece of work, a disk- and filesystem-reading (and writing) library go-diskfs, where he is adding squashfs support via diskfs (and making diskfs materially better).

At this point, the shell-based mysql-backup is in maintenance only, as the go-based version (single binary or container, your choice, but you would not believe how much easier it is to resolve issues with a single binary... or maybe you would 😄) is at v1.0.0-rc1; I expect release candidate 2 later this week.

Could we add rclone as a library to the go-based version? Perhaps. I would not complain about adding more remote capabilities for less work.

@ncw want to comment on it?

Ganneff commented 10 months ago

Oh, I read about your go adventure, that's why I mentioned that rclone will only add one binary to the mix.

And I do believe that replacing shell with a compiled thing does make a difference, also the language I chose for my replacements is Rust. :smile:

Ok, so I wait a bit and see if you maybe magically make this appear, thanks! :smiley:

deitch commented 10 months ago

also the language I chose for my replacements is Rust

I had been contemplating making an rs-diskfs in addition to go-diskfs, but it is quite the lift, and I still have not completed ext4. Once that is done, perhaps.

ncw commented 10 months ago

This seems like an ideal job for rclone :-)

You could use librclone and link rclone into your go binary, or you could shell out to an external rclone command.

deitch commented 10 months ago

Do you mind linking to librclone docs?

you could shell out to an external rclone command

No, not that. This runs in a container but also as a single standalone binary. I intend to keep it that way