Restic: 支持新的 Scaleway 对象存储(S3 兼容)

创建于 2018-10-05  ·  22评论  ·  资料来源: restic/restic

restic version

0.8.3

restic 应该做什么不同的? 您认为我们应该添加哪些功能?

添加支持新 Scaleway 对象存储的新后端

https://www.scaleway.com/docs/object-storage-feature/

你想做什么?

我想使用 restic 在 Scaleway 上备份我的 VPS。
由于内部流量是免费的,我很乐意使用该对象存储。

restic 是否以任何方式帮助了您或让您感到高兴?

雷斯蒂克太棒了!

最有用的评论

仅供参考,这适用于nl-amsfr-par区域(没有~/.aws/* ):

ip route add blackhole 169.254.169.254/32
mc config host add s3 https://s3.fr-par.scw.cloud:443 ACCESS SECRET
sed -i 's/S3v4/s3v2/g' ~/.mc/config.json
./restic_0.9.5_linux_amd64 -r s3:https://s3.fr-par.scw.cloud/BUCKETNAME init

我们确实支持 SigV4,但我们没有“通用”端点,而且 Minio 不会切换区域 ( The authorization header is malformed; the region 'us-east-1' is wrong; expecting 'fr-par' )

干杯

所有22条评论

@tapionx感谢您填写问题模板!

首先,请更新您的 restic 版本,最新版本是 0.9.2 并且自 0.8.3 以来有很多改进和修复。 如果你的包管理器没有更新,你可以去https://github.com/restic/restic/releases为你的操作系统获取二进制文件。

其次,Scaleway 在他们的网站上说对象存储是 S3 兼容的,所以你应该可以使用 S3 后端直接使用它。 他们确实说他们“目前支持 S3 操作的一个子集”,但是试一试看看它是如何工作的。 更多信息显然在https://www.scaleway.com/docs/s3-object-storage-api/

我认为版本在这里不相关..
我真的会努力的! 您认为这只是将s3.amazonaws.com替换

是的,版本说明只是一个友好的建议,考虑到您当前的版本很旧。 如果可以,我建议你更新。

是的,这是要做的第一件事; 尝试将其用作常规 S3(但显然具有有效的端点,如您所说)。 有关更详细的说明,请参阅https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html#amazon -s3 👍

我同意@rawtaz ,它应该与 s3 后端或 rclone 后端一起开箱即用,因为它适用于aws-clihttps ://computingforgeeks.com/how-to-

我将暂时关闭此问题,请在尝试时随意添加更多评论。 谢谢!

如果您使用的是 V4 签名,则 Scaleway 对象存储似乎无法使用(适用于 V2,至少使用 https://s3browser.com/)
使用restic 0.9.2我得到:

Fatal: create repository at s3:s3.nl-ams.scw.cloud/restic-test failed: client.BucketExists: The request signature we calculated does not match the signature you provided. Check your key and signing method.

这与我在 s3browser 中使用 V4 签名时得到的结果一致:

image

嗯,据我所知,我们使用的 s3 库(minio-go)支持 v2 和 v4 签名。 你能不能说一下@harshavardhana?

您是否尝试过使用rclone后端?

我们现在尽量不添加新的后端,这样做会产生大量的维护和测试工作......

这与我在 s3browser 中使用 V4 签名时得到的结果一致:

这看起来像是 Scaleway @juzam @fd0 中的一个错误——我们可以得到。 TraceOn()查看请求标头并查看 Scaleway 的内容。

但是由于两个restic,s3browser 都看到相同的错误,因此很可能是服务器问题。

您是否尝试过使用rclone后端?

@fd0还没有,我会试着回报

我们现在尽量不添加新的后端,这样做会产生大量的维护和测试工作......

确认。 如果我们可以管理现有后端,则无需添加新后端。

@harshavardhana从我有限的测试来看,Scaleway 似乎只支持 v2 签名,但它应该仍然可以与 minio-go 一起使用,不是吗? 也许我遗漏了一些明显的东西,抱歉。

@harshavardhana从我有限的测试来看,Scaleway 似乎只支持 v2 签名,但它应该仍然可以与 minio-go 一起使用,不是吗? 也许我遗漏了一些明显的东西,抱歉。

是的,在这种情况下,您需要使用 minio.NewV2() - 我认为 restic 不支持@fd0吗?

tl; dr:它通过带有 v2 签名的 rclone 工作

@fd0很高兴地报告,如果通过带有预先存在的存储桶的 rclone 后端配置,则可以使用 Scaleway S3。

这是相关的 rclone v1.43.1远程配置:

[scaleway]
type = s3
provider = Other
env_auth = false
access_key_id = xxxxxx
secret_access_key = yyyy
endpoint = s3.nl-ams.scw.cloud
acl = private
region = other-v2-signature

起初,我在 rclone 远程配置中使用选项1没有指定任何区域:

Choose a number from below, or type in your own value
 1 / Use this if unsure. Will use v4 signatures and an empty region.
   \ ""
 2 / Use this only if v4 signatures don't work, eg pre Jewel/v10 CEPH.
   \ "other-v2-signature"

但它没有用,只是另一个信息证实了 v4 签名不是 Scaleway 上的东西的理论。

编辑:存储桶必须已经存在,如果没有,rclone 无法使用上述配置创建它,并给出以下错误:

Post request put error: InvalidLocationConstraint: The specified location constraint is not valid.

非常感谢您留下反馈! :)

实际上,我使用这个命令restic --repo rclone:scaleway:my-bucket init

# ~/.config/rclone/rclone.conf 

[scaleway]
type = s3
provider = Other
env_auth = false
access_key_id = MY_ACCESS_KEY
secret_access_key = MY_SECRET_KEY
endpoint = s3.nl-ams.scw.cloud
acl = private
region = other-v2-signature

谢谢@juzam

只是对希望使用 Scaleway 服务的任何人的快速更新。 我最近在将备份保存到nl-ams区域时遇到了麻烦,支持人员建议将区域参数更改为region = nl-ams ,问题得到解决。 我没有在现在可用的fr-par区域中尝试任何存储桶。

仅供参考,这适用于nl-amsfr-par区域(没有~/.aws/* ):

ip route add blackhole 169.254.169.254/32
mc config host add s3 https://s3.fr-par.scw.cloud:443 ACCESS SECRET
sed -i 's/S3v4/s3v2/g' ~/.mc/config.json
./restic_0.9.5_linux_amd64 -r s3:https://s3.fr-par.scw.cloud/BUCKETNAME init

我们确实支持 SigV4,但我们没有“通用”端点,而且 Minio 不会切换区域 ( The authorization header is malformed; the region 'us-east-1' is wrong; expecting 'fr-par' )

干杯

Restic 应该更新到最新的 minio-go 我们已经做了一些更改以适当地处理区域要求。

Restic 应该更新到最新的 minio-go 我们已经做了一些更改以适当地处理区域要求。

@fd0这很难实现吗? 即使它通过 rclone 工作,直接使用 s3 后端也更简单(如果你问我的话,也很干净)。 感谢您的时间 :)

由于错误,我最近更改了我的 rclone.conf :

# ~/.config/rclone/rclone.conf 

[scaleway]
type = s3
provider = Scaleway
env_auth = false
access_key_id = MY_ACCESS_KEY
secret_access_key = MY_ACCESS_KEY
region = fr-par
endpoint = s3.fr-par.scw.cloud

灵感来自https://habd.as/post/borg-backup-minio-scaleway/文章

我遇到了同样的问题,并为 minio-go 添加了对 Scaleway 的支持。 然后使用更新版本重建restic(和mc)并且两者都可以正常工作,不需要进一步的更改,只需使用s3后端。
我的更改会根据端点 URL 自动设置正确的区域。
我向 minio-go (https://github.com/minio/minio-go/pull/1188) 提交了 PR,让我们看看它们是否合并。

似乎由 restic 开发人员来添加区域支持。 这个问题应该重新打开吗?

@Kaan88 https://github.com/restic/restic/pull/2484是否解决了您刚刚询问的问题(区域支持)?

@rawtaz确实如此。 我不需要设置环境变量。

惊人的!

此页面是否有帮助?
0 / 5 - 0 等级