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

使用minio存储,无法上传 - url错误 #57

Closed
xyz-dev opened this issue Nov 16, 2020 · 5 comments
Closed

使用minio存储,无法上传 - url错误 #57

xyz-dev opened this issue Nov 16, 2020 · 5 comments

Comments

@xyz-dev
Copy link

xyz-dev commented Nov 16, 2020

vscode debug master code

zpan.yml:

database:
  driver: sqlite3
  dsn: zpan.db

provider:
  name: s3
  bucket: saltbo-zpan
  endpoint: http://192.168.2.223:9000
  accessKey: minioadmin
  accessSecret: minioadmin

iShot2020-11-16 23 52 34

iShot2020-11-16 23 53 46

@saltbo
Copy link
Owner

saltbo commented Nov 17, 2020

我们需要MinIO启用Virtual Hosted-Style,所以使用Minio的时候需要绑定一个域名,然后需要给MinIO设置环境变量MINIO_DOMAIN=minio.localhost。 https://stackoverflow.com/questions/59693471/how-to-setup-minio-server-to-use-virtual-hosted-style

最后把zpan配置文件中的endpoint设置为 http://minio.localhost 即可

@xyz-dev
Copy link
Author

xyz-dev commented Nov 17, 2020

修改了配置 可以上传,图床 预览好像还有问题

provider:
  name: s3
  bucket: zpan
  endpoint: http://mao3.c:9000
  accessKey: minioadmin
  accessSecret: minioadmin

minio 配置了 MINIO_DOMAIN="mao3.c"

docker run -d --name minio  -e MINIO_DOMAIN="mao3.c"  -p 9000:9000  jessestuart/minio server /usr/local/minio/storage

图床 ->添加图片->缩略图错误,在 “全部文件->图片” 下点击查看没有问题

iShot2020-11-17 11 55 58

@saltbo
Copy link
Owner

saltbo commented Nov 17, 2020

这里确实没注意,应该是权限问题,图床的链接是不带签名的,得需要MinIO支持公开访问。可以查下能不能配置

@xyz-dev
Copy link
Author

xyz-dev commented Nov 17, 2020

配置策略可行,但图床的图片和其它非公开都放置到一个目录 无法区分设置策略

mc config host add minio http://xxxxx:9000 xxxx xxxx --api s3v4
mc policy set public minio/zpan

https://docs.min.io/docs/minio-client-complete-guide#policy

iShot2020-11-17 15 40 50

iShot2020-11-17 21 08 32

https://docs.min.io/cn/minio-server-limits-per-tenant.html

临时方案解决:
修改源码 rest/bind/file.go 使用一个固定目录存储图床,再配置策略:mc policy set public minio/zpan/.pics

	prefix := timeutil.Format(time.Now(), "YYYYMMDD")
	if p.Public {
		m.ACL = model.AclPublic
		prefix = ".pics"
	}
	m.Object = fmt.Sprintf("%s/%s%s", prefix, m.Alias, filepath.Ext(p.Name))

较好的做法应该是在配置文件中支持这个可选配置并修改provider/provider_s3.go的SignedPutURL方法,可否考虑下?

@xyz-dev xyz-dev closed this as completed Nov 17, 2020
@saltbo
Copy link
Owner

saltbo commented Nov 17, 2020

确实 目前图床文件没有单独存储到一个独立的目录 后续我们看下怎么优化下

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

No branches or pull requests

2 participants