nebula br 备份上传到阿里云OSS时出错(URL拼接错误?)

cmd: br backup full --meta “<meta_ip>:9559” --s3.endpoint “https://oss-cn-hangzhou.aliyuncs.com” --storage=“s3://<backup_bucket>/nebula/” --s3.access_key=<a_key> --s3.secret_key=<s_key> --s3.region=oss-cn-hangzhou
参考文档使用br备份到阿里云OSS时,阿里云返回错误: Please use virtual hosted style to access
根据阿里云文档改用虚拟host.
cmd: br backup full --meta “<meta_ip>:9559” --s3.endpoint “https://<backup_bucket>.oss-cn-hangzhou.aliyuncs.com” --storage=“s3://<backup_bucket>/nebula/” --s3.access_key=<a_key> --s3.secret_key=<s_key> --s3.region=oss-cn-hangzhou
返回错误: Put "https://<backup_bucket>.<backup_bucket>.oss-cn-hangzhou.aliyuncs.com/nebula/BACKUP_2023_09_25_11_34_30/meta/disk_parts.sst": dial tcp: lookup <backup_bucket>.<backup_bucket>.oss-cn-hangzhou.aliyuncs.com on 100.100.2.136:53: no such host"

1 个赞

image

:thinking: 你的版本号是什么?

nebula-server: 3.4.1
nebula-agent: 3.4.0
nebula-br: 3.3.0
另外注意到, 使用非virtual host时(1楼的第一个cmd), 并不是一开始就报错, bucket里已经上传了很多文件, 每次备份都是在上传这个文件时报错.
upload local tmp file to remote storage s3://<buckup_bucket>/nebula/BACKUP_2023_09_25_11_45_07/BACKUP_2023_09_25_11_45_07.meta failed: upload from /tmp/nebula-br/BACKUP_2023_09_25_11_45_07.meta to nebula/BACKUP_2023_09_25_11_45_07/BACKUP_2023_09_25_11_45_07.meta failed: SecondLevelDomainForbidden: Please use virtual hosted style to access.\n\tstatus code: 403, request id: <req_id>, host id:

Let me know if you have any updates, thx.

您好,可以参考这个格式试一下,./br backup full --meta <meta_ip>:9559 --s3.access_key ACCESSKEY --s3.secret_key SECRETKY --s3.region oss-cn-hangzhou --storage s3://<bucket_name>/ --s3.endpoint https://oss-cn-hangzhou.aliyuncs.com

1 个赞

same error

@steam @kqzh
和阿里云技术支持沟通后基本可以确定是由于阿里云oss和s3对url拼接处理的不同导致的. 我使用本地minio测试后可以成功上传备份.
直接使用s3 sdk访问阿里云oss需要做一些额外的处理. 烦请考虑添加对阿里云oss的支持. 国内阿里云用户还是挺多的.

阿里云技术支持回复:

客户是使用aws代码吗,aws拼接的方式通常是endpoint/bucket去拼接请求,oss的请求格式是bucket.endpoint
客户在请求初始化的时候需要改为响应的格式去请求

https://help.aliyun.com/zh/oss/developer-reference/use-amazon-s3-sdks-to-access-oss
1 个赞

后续回复:

https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/access-bucket-intro.html
路径path请求方式:这个方式目前oss不支持。
https://endpoint/bucketname/objectname

虚拟托管请求方式:oss支持这种方式
https://bucket.endpoint/objectname
------
结合您上述描述的请求部分可以成功,采用的应该是虚拟托管的方式进行请求因此可以成功,当前错误的方式是使用了路径path的方式进行请求,因此报错
2 个赞

其他文件都可以上传成功, 但是 .meta这个文件上传失败, 是否是因为使用了不同的请求方式?

您好,文件上传的请求方式都是一样的,看了下内部代码,s3默认用的是 virtual hosted style,可能要针对阿里云oss调整下对应endpoint和storage参数

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。