请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

创建bucket时候create bucket err:404 Not Found

测试程序

func main() {
	bucket := ceph.GetCephBucket("testbucket1")

	//创建bucket
	err := bucket.PutBucket(s3.PublicRead)
	fmt.Printf("create bucket err:%+v
", err)

	//查询bucket下指定条件的object keys
	res, err := bucket.List("", "", "", 100)
	fmt.Printf("object keys:%+v
", res)

	//上传一个新对象
	err = bucket.Put("/testupload/a.txt", []byte("just for test"), "octet-stream", s3.PublicRead)
	fmt.Printf("upload err:%+v
", err)

	//查询bucket下指定条件的object keys
	res, err = bucket.List("", "", "", 100)
	fmt.Printf("object keys:%+v
", err)
}

输出的错误如下

create bucket err:404 Not Found
object keys:<nil>
upload err:404 Not Found
object keys:404 Not Found

使用的连接

auth := aws.Auth{
		AccessKey: "3S63LPNE7AYCYBAO42AB",
		SecretKey: "taNYIE3NxsYrqoayoyGpHF89EAPzh0OFC3x9s2pI",
	}

	currRegion := aws.Region{
		Name:                 "default",
		EC2Endpoint:          "http://172.16.133.130:8080",
		S3Endpoint:           "http://172.16.133.130:8080",
		S3BucketEndpoint:     "",
		S3LocationConstraint: false,
		S3LowercaseBucket:    false,
		Sign:                 aws.SignV2,
	}

查询的用户确定没错

docker exec ceph-rgw radosgw-admin user info --uid=user1

"keys": [
        {
            "user": "user1",
            "access_key": "3S63LPNE7AYCYBAO42AB",
            "secret_key": "taNYIE3NxsYrqoayoyGpHF89EAPzh0OFC3x9s2pI"
        }
    ],

不知道从何查起,dashboard正常访问

查看集群的状态 是健康
这个方法

//创建bucket
bucket := ceph.GetCephBucket("testbucket")
 bucket.PutBucket(s3.PublicRead)

看了下源码实现

func (b *Bucket) PutBucket(perm ACL) error {
	//*****
	return b.S3.query(req, nil)
}
//******
req.path = "/" + req.bucket + req.path
//****

会拼路径,但是这个"testbucket",并不存在
纠结好久了,还望老师帮助?

正在回答

2回答

想到一种可能,gateway默认的端口是80端口,和dashboard的端口是不一样的.所以上面写的http://172.16.133.130:8080的这个8080端口是你修改后的gateway端口吗?

S3Endpoint要用gateway暴露的端口.

0 回复 有任何疑惑可以回复我~
  • 提问者 成龙哥哥 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-05-22 13:05:18
  • 提问者 成龙哥哥 #2
    多谢?。可以了,是端口的问题,纠结了好久,查了好多资料,老师一语点醒梦中人啊!
    回复 有任何疑惑可以回复我~ 2019-05-22 13:06:39
  • xiaomo 回复 提问者 成龙哥哥 #3
    还真是这个原因啊,纠结...解决了就好
    回复 有任何疑惑可以回复我~ 2019-05-22 13:25:50
xiaomo 2019-05-20 21:43:28

先查看集群的状态如何?

docker exec -it monnode ceph -s

以及相关容器日志有没报错?

再试试看下目前有没bucket了:

docker exec -it gwnode radosgw-admin bucket list


0 回复 有任何疑惑可以回复我~
  • 提问者 成龙哥哥 #1
    cluster:
        id:     591d0d83-6e19-4331-b1da-9d2bcf0b4774
        health: HEALTH_OK
    
    bucket list
    []
    回复 有任何疑惑可以回复我~ 2019-05-21 02:13:08
  • 提问者 成龙哥哥 #2
    我补充了问题,跟了下源码,还是没解决,希望得到老师帮助
    回复 有任何疑惑可以回复我~ 2019-05-21 23:26:51
  • xiaomo 回复 提问者 成龙哥哥 #3
    抱歉最近白天比较忙。想了解下有没手动配置zonegroup?可以先加下qq群交流一下
    回复 有任何疑惑可以回复我~ 2019-05-21 23:43:18

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信