使用restic备份数据至阿里云oss
初始化repo: restic -o s3.bucket-lookup=dns -o s3.region=oss-cn-beijing -r s3:https://xxx(bucket_name).oss-cn-beijing.aliyuncs.com init
-o s3.bucket-lookup=dns: 通过Virtual path host连接(阿里云限制)
-o s3.region=oss-cn-beijing: bucket所在区域
-r s3:https://xxx(bucket_name).oss-cn-beijing.aliyuncs.com: Bucket域名
备份: restic -r s3:https://xxx(bucket_name).oss-cn-beijing.aliyuncs.com --verbose backup c:\temp(需要备份的目录或文件)
--verbose: 显示详细信息
需要修改代码, Go语言不太熟悉, 改的合不合理不太清楚.
文件: internal/backend/s3/config.go
修改前(57~62行):
if url.Path == "" {
return nil, errors.New("s3: bucket name not found")
}
path := strings.SplitN(url.Path[1:], "/", 2)
return createConfig(url.Host, path, url.Scheme == "http")
修改后:
var path []string
if url.Path == "" {
temps := strings.SplitN(url.Host, ".", 2)
path = append(path, temps[0])
url.Host = temps[1]
} else {
path = strings.SplitN(url.Path[1:], "/", 2)
}
return createConfig(url.Host, path, url.Scheme == "http")
有用的环境变量:
RESTIC_PASSWORD_FILE: 可以将密码保存至文件中, 在进行备份时不需要输入密码. 设置文件路径.
RESTIC_REPOSITORY: 指定默认存储库位置, 后续处理中可不指定-r参数

浙公网安备 33010602011771号