S3 数据备份和恢复

这里讲的是 Simple Storage Service,但不一定是Amazon提供的。

比如兼容 S3 API 的存储组件,Ceph, MinIO 等。

但在用这几种组件的时候 总会遇到个问题,数据怎么迁移?

对于整个Bucket进行迁移

aws官方的客户端用了几次,但还是那个问题,仅对 Amazon 自己比较舒服,但假设用了别的兼容API,就很复杂。

所以 万能的 MinIO 客户端 来拯救 S3。

设置 alias

mc alias set myminio/ http://MINIO-SERVER MYUSER MYPASSWORD

cp

mc cp --recursive myminio/mybucket target/

Tips

当然这种备份和恢复显然都不是最好的。

因为上传时间会被改变。(后续会想想办法解决)

对于个人文件存储到 S3 上

可以借助 Restic 来完成这些操作。

当然也可以用 Cloudreve 这种强大的 GUI 工具来做作管理。

不过 为了轻量化 和一些比较特殊的操作 这次介绍 Restic。

(其实很类似于 Git)

设置 S3 服务

export AWS_ACCESS_KEY_ID=<YOUR-MINIO-ACCESS-KEY-ID>
export AWS_SECRET_ACCESS_KEY=<YOUR-MINIO-SECRET-ACCESS-KEY>

初始化 repository

restic -r s3:http://localhost:9000/restic init

backup & restore

!!以下内容未严格测试

# backup
restic -r s3:http://localhost:9000/restic --verbose backup ~/work

# restore
restic -r s3:http://localhost:9000/restic restore 79766175 --target /tmp/restore-work

Comparing Snapshots

!!以下内容未严格测试

restic -r s3:http://localhost:9000/restic /srv/restic-repo diff 5845b002 2ab627a6