Yenthe666 / auto_backup

Automated database backups from Odoo, both locally and on an FTP server
MIT License
251 stars 281 forks source link

[8.0] / [Feature Request] Google Drive Support #15

Open lukebranch opened 9 years ago

lukebranch commented 9 years ago

@Yenthe666 ,

Thanks for your hard work with this module. It's now an indispensable part of every Odoo instance I setup.

I'd like to submit a feature request. There is a FOSS project called Duplicati that offers a number of very powerful features, including incremental backups, and backups to a number of different services using their API's (eg. Google Drive, SkyDrive, and a number of others).

This project was originally based on: http://duplicity.nongnu.org/

that is written in Python.

The backends for the services (in Dupliciti) are here:

https://github.com/duplicati/duplicati/tree/master/Duplicati/Library/Backend

I thought the project may be of interest to you for future enhancements in the auto_backup module.

Yenthe666 commented 9 years ago

@lukebranch

Thanks a lot for your feedback! I would really have to look in to this but I don't really have time for this at the moment.. You're always free to kickstart this or build it, for now I'll have to put this on hold, sorry.

lukebranch commented 9 years ago

@Yenthe666 ,

Thanks for the reply. I understand, I just thought I would submit it as a suggestion for the project at some point in the future.

I will look at the project in more detail on my end and look into extending the auto_backup module with some extra features at a later date.

I'll close this for now and come back to it later.

Yenthe666 commented 9 years ago

@lukebranch,

Its a great suggestion too. I'll re-open this so I can't lose this out of my sight either. :+1: I should re-factor this code too. It needs a clean-up etc. Let me know if you have built anything or have any ideas, so will I!

lukebranch commented 9 years ago

@Yenthe666 ,

no problem. I'll definitely keep you updated, thanks!

spadae22 commented 9 years ago

Hi, I have love this module also and use local Dropbox folder on Ubuntu and keep my copies there. Works without issue, just need to make sure permissions are correct

Yenthe666 commented 9 years ago

@spadae22

So you've basically specified the path to your Dropbox folder to sync the back-ups with your Dropbox? :smile:

spadae22 commented 9 years ago

Yes, three backups rule, actually I get 4. Since my test VM is a dupe of the live server. So I keep local DropBox, Cloud, sFTP local, and my local DropBox has a copy. screen shot 2015-10-02 at 10 23 20 am

Yenthe666 commented 7 years ago

Hi @lukebranch,

Any update on this one? I was thinking about adding in this feature since it would be neat. I've found a sample made by somebody here (https://github.com/googledrive/python-quickstart) but he uses the client_secrets.json inside the module and with his own secrets in there. I'm quite sure that is not what you should do. Did you investigate anything about this?

lukebranch commented 7 years ago

Hi @Yenthe666 ,

Unfortunately I haven't found any time to work on it since my original feature request. GoogleDrive/python-quickstart looks like an awesome headstart into this project though.

On further thought I'm also wondering whether it's perhaps a good idea to abstract the google drive storage into a standalone module, with auto_backup depending on it.

I believe the google drive storage integration would be an incredibly valuable tool in Odoo for many other things as well (eg. automatic filing/storage of Odoo-generated documents like sale orders and purchase orders).

Regarding the client_secrets.json, I'm wondering if we can draw some inspiration from Odoo SA's own Google Drive implementation using OAuth 2.0:

https://github.com/odoo/odoo/tree/10.0/addons/google_drive

Honestly I haven't managed to commit much time to studying this yet, however if I can find time in January i'll dive into the code for python-quickstart and get back to you.

lukebranchoscg commented 7 years ago

@Yenthe666 ,

FYI, I just came across this interesting repo for connecting to GDrive API through Python:

https://github.com/ctberthiaume/gdcp

I'm able to use it with SH scripts to push to Google Drive after an initial setup of API credentials, and I believe it would be a lot simpler than my previous suggestion.

This still requires a client_secrets.json file, however you can get the user to generate this for themselves by following the instructions here:

https://github.com/ctberthiaume/gdcp#usage

I don't know if there's any way to do this through the Odoo UI alone, however if you are able to figure out a way to offer this as a storage backend (albeit for users with a bit of technical know-how) I believe this would be a killer feature due to GDrive's unlimited storage tier.

I'll post back with links to simple SH scripts i've created once they're finished in case they are useful for you for this project in the future.

(this is @lukebranch using another work github account by the way)

Yenthe666 commented 7 years ago

Hi @lukebranchoscg,

Thank you for the update, details and a repository! This does look promising, let me know when you've got the SH scripts figured out and do post them, I'll try to have a look then. 😄

Yenthe666 commented 7 years ago

Hi @lukebranch,

Did you find any time to look into this? Would love to hear back from you!

Regards, Yenthe

lukebranch commented 7 years ago

@Yenthe666 ,

Thanks for the message. I haven't yet explored this in as much detail as I would like. I'll comment back soon with more information once I have some time to go over it. I'll pass you the SH scripts in a gist a bit later so we can discuss.