Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

数据同步接入 S3 协议兼容的对象存储服务 #6528

Closed
88250 opened this issue Nov 9, 2022 · 24 comments
Closed

数据同步接入 S3 协议兼容的对象存储服务 #6528

88250 opened this issue Nov 9, 2022 · 24 comments
Assignees
Milestone

Comments

@88250
Copy link
Member

88250 commented Nov 9, 2022

欢迎使用我们的推广链接开通阿里云 OSS:https://www.aliyun.com/product/oss?userCode=yqovuas2

手动配置 工作空间/conf/conf.json 中的 sync.provider 为 2 以及 s3,参考如下:

    "s3": {
      "endpoint": "Bucket 对应的 Endpoint(地域节点)",
      "accessKey": "你的阿里云账号 AccessKey ID",
      "secretKey": "你的阿里云账号 AccessKey ID 对应的 Secret",
      "bucket": "你的 Bucket 名称",
      "region": "地域节点名称,对于 Endpoint 的二级域名,比如 oss-cn-hangzhou"
    }

阿里云的 region 参考 https://help.aliyun.com/document_detail/31837.htm
七牛云的 region 参考 https://developer.qiniu.com/kodo/4088/s3-access-domainname

目前该特性处于内测阶段,所以暂时只提供手动修改配置文件的配置方式,等内测稳定以后会在 #6426 中提供界面配置给普通用户使用。

之前的七牛云实现也一并改为 S3 SDK 对接 #6445

@88250 88250 added this to the 2.4.12 milestone Nov 9, 2022
@88250 88250 self-assigned this Nov 9, 2022
@Soltus
Copy link
Contributor

Soltus commented Nov 9, 2022

希望增加腾讯云 COS

@88250
Copy link
Member Author

88250 commented Nov 9, 2022

@Soltus 腾讯云兼容 S3 协议的话应该可以。

88250 added a commit to siyuan-note/dejavu that referenced this issue Nov 9, 2022
@88250 88250 closed this as completed Nov 9, 2022
@88250
Copy link
Member Author

88250 commented Nov 9, 2022

测试了一下,阿里云 OSS 可以并入 S3 实现里面,就不单独实现了。

@88250 88250 changed the title 数据同步接入阿里云 OSS 数据同步接入 S3 协议兼容的对象存储服务 Nov 9, 2022
@88250 88250 reopened this Nov 9, 2022
@88250 88250 closed this as completed Nov 9, 2022
@jl0476
Copy link

jl0476 commented Nov 10, 2022

minio的情况,
bucket参数无效,设置了siyuan,调用的时候还是用的repo

@jl0476
Copy link

jl0476 commented Nov 10, 2022

image
抓包如图,建了一个repo的bucket,可以正常同步。

@jl0476
Copy link

jl0476 commented Nov 10, 2022

s3是不是有两种请求风格,minio用的应该是path风格的
image

@88250
Copy link
Member Author

88250 commented Nov 10, 2022

@jl0476 我这边测试七牛云的时候用的是 "endpoint": "http://s3-cn-south-1.qiniucs.com/",

@jl0476
Copy link

jl0476 commented Nov 10, 2022

@jl0476 我这边测试七牛云的时候用的是 "endpoint": "http://s3-cn-south-1.qiniucs.com/",

我不是用的七牛云,是自己搭建的minio,支持s3的协议。
截七牛云是为了说明报错的情况。

@88250
Copy link
Member Author

88250 commented Nov 10, 2022

这个我不太清楚哦,两种都试一下看看。

@jl0476
Copy link

jl0476 commented Nov 10, 2022

这么说吧,比如在参数里配置的bucket名称 是aaa,现在思源是采用virtual-host Style方式:
http://aaa.s3-cn-south-1.qiniucs.com/repo/xxx

但是minio可以用的是path方式,
应该是:http://s3-cn-south-1.qiniucs.com/aaa/repo/xxx

于是现在配置的bucket参数就不起作用了,minio识别的bucket是 repo

@88250
Copy link
Member Author

88250 commented Nov 10, 2022

@jl0476
Copy link

jl0476 commented Nov 10, 2022

看下这里是不是有帮助 https://stackoverflow.com/questions/59693471/how-to-setup-minio-server-to-use-virtual-hosted-style

好的 我也在搜索解决方案,感谢。

@jl0476
Copy link

jl0476 commented Nov 10, 2022

@JCJC01
Copy link

JCJC01 commented Nov 10, 2022

我用joplin同步minio成功,但是思源一直提示找不到桶。问了minio团队,说是选path

@jl0476
Copy link

jl0476 commented Nov 10, 2022

看下这里是不是有帮助 https://stackoverflow.com/questions/59693471/how-to-setup-minio-server-to-use-virtual-hosted-style

我用joplin同步minio成功,但是思源一直提示找不到桶。问了minio团队,说是选path

@JCJC01 两种解决方法,如果不改minio 就建一个名称为repo的bucket
不然就看下stackoverflow的 增加 MINIO_DOMAIN参数

@jl0476
Copy link

jl0476 commented Nov 10, 2022

@88250 看看是不是把minio单独配置的写到版本介绍中,这样大家就不用问了。

@88250
Copy link
Member Author

88250 commented Nov 10, 2022

@jl0476 这个靠用户自己分享教程吧。

@JCJC01
Copy link

JCJC01 commented Nov 10, 2022

看下这里是不是有帮助 https://stackoverflow.com/questions/59693471/how-to-setup-minio-server-to-use-virtual-hosted-style

我用joplin同步minio成功,但是思源一直提示找不到桶。问了minio团队,说是选path

@JCJC01 两种解决方法,如果不改minio 就建一个名称为repo的bucket 不然就看下stackoverflow的 增加 MINIO_DOMAIN参数

我放弃minio了,直接用群晖的webdav同步更快,不用docker多一个minio感觉更稳定。而且我用joplin测试了minio,好像同步成功后还是有bug,时不时提示错误?你能docker minio,还不如docker个webdav更好

@Zuoqiu-Yingyi
Copy link
Contributor

Zuoqiu-Yingyi commented Nov 10, 2022

那我在这贴一个使用 Nginx 反代 Docker 部署的 MinIO OSS 服务的配置:

Docker 容器运行命令Administrator

docker run \
   --detach \
   --name minio \
   --restart=unless-stopped \
   -p 9000:9000 \
   -p 9090:9090 \
   -v /data/minio/data:/data \
   -e "MINIO_DOMAIN=endpoint.domain.name" \
   -e "MINIO_ROOT_USER=username" \
   -e "MINIO_ROOT_PASSWORD=password" \
   quay.io/minio/minio server /data --console-address ":9090"

MinIO 配置

  1. User > Buckets 新建一个名为 your-bucket-name 的 bucket
  2. User > Access Keys 生成一组 Access Keys
    • Access Key: 123456
    • Secret Key: abcdef
  3. Administrator > Settings > Region 设置 Region
    • Server Location: example-region-name

Nginx 配置

站点配置片段 (二选一)

# 设置为默认站点
listen 80 default_server;
listen 443 ssl http2 default_server;
server_name endpoint.domain.name;

# 或者直接设置子域名站点
listen 80;
listen 443 ssl http2;
server_name your-bucket-name.endpoint.domain.name;

反向代理配置

location ^~ /
{
    proxy_pass http://localhost:9000;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
}

思源 conf.json 设置

"provider": 2,
"s3": {
  "endpoint": "https://endpoint.domain.name/",
  "accessKey": "123456",
  "secretKey": "abcdef",
  "bucket": "your-bucket-name",
  "region": "example-region-name"
},

@JCJC01
Copy link

JCJC01 commented Nov 10, 2022

应该是地址那一栏有坑。还有端口需要9000,
joplin有个强制路径配置的按钮才设置成功

@Zuoqiu-Yingyi
Copy link
Contributor

s3是不是有两种请求风格,minio用的应该是path风格的
image

@88250 要不要添加一个参数设置 URL 风格的样式?

@88250
Copy link
Member Author

88250 commented Nov 12, 2022

@Zuoqiu-Yingyi 不太确定…… 以七牛云为例的话 SDK 这里的配置是这样的

image

@Zuoqiu-Yingyi
Copy link
Contributor

@Zuoqiu-Yingyi 不太确定…… 以七牛云为例的话 SDK 这里的配置是这样的

image

aws-sdk-go 里面 S3 会话有个 S3ForcePathStyle bool 字段设置是否启用 path 样式

@88250
Copy link
Member Author

88250 commented Nov 12, 2022

好的,等会我们加一下吧。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants