通过Google服务帐户将django postgres数据库、本地文件夹和S3文件夹备份到Google驱动器文件夹中。

django-gdrive-backup的Python项目详细描述


django gdrive备份

通过Google服务帐户将django postgres数据库、本地文件夹和S3文件夹备份到Google驱动器文件夹中。在

创建服务帐户

需要启用Google Drive API的Google服务帐户

https://console.cloud.google.com/apis/credentials/serviceaccountkey

Store服务帐户密钥

默认情况下,encrypted credentials用于存储密钥。在django projects BASE_DIR下创建一个名为credentials的目录,并保存json密钥。在

在设置.py在

CREDENTIAL_FOLDER = os.path.join(BASE_DIR, 'credentials')
CREDENTIAL_FILES = {
    'drive': 'service-account.json',
}

创建Google Drive文件夹并与服务帐户共享

使用googledrive帐户创建一个文件夹并与服务帐户的电子邮件地址共享。在

配置数据库备份

在设置.py在

^{pr2}$

管理命令

python manage.py backup_website
python manage.py restore_db

管理页

在网址.py在

urlpatterns = [
                path('backup/', include('gdrive_backup.urls')),
                ....

Configure S3文件夹备份

在设置.py在

        AWS_ACCESS_KEY_ID = id
        AWS_SECRET_ACCESS_KEY = key
        AWS_PRIVATE_STORAGE_BUCKET_NAME = bucket

        S3_BACKUP_DIRS = [('S3-source-folder1', 'google-drive-folder1'),
                          ('S3-source-folder2', 'google-drive-folder2')
        ]

配置旧数据库备份的清理

在设置.py在

BACKUP_DB_RETENTION = [{'hours': 1, 'number': 4}, 
                       {'hours': 2, 'number': 10},
                       {'days': 1, 'number': 10},
                       {'months': 1, 'number': 36},
                       ]

Schedule backup with cellery beat

CELERY_BEAT_SCHEDULE = {
    'backup': {
        'task': 'gdrive_backup.tasks.backup',
        'schedule': crontab(hour='8-19', minute=10, day_of_week='mon-fri')
    }
}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在安卓 studio中使用调用jaxws web服务的jar文件   java双时间模拟时钟不打印两个不同的时间   java Jackson反序列化处理不带字段的生成值   多线程在java同步中读锁的目的是什么   为什么java中有这么多获取日期时间的方法?   java从listview中的TextView获取数据   java是否可以定义如何对枚举进行(反)序列化以在枚举内持久化?   Java:异常处理我的catch()有问题   VMWare java SDK:可用的PerfMetricID何时不报告数据?   exec在Java中执行命令而不重定向输出   java使用SpringXML配置实现观察者模式?   java在竹笔平板电脑中使用JPen