GitLab多节点架构下用户上传文件无法存入对象存储的问题咨询
GitLab 对象存储配置问题解答
问题1:如何让GitLab默认将指定对象存入S3存储桶?
你当前的全局对象存储已开启,但每个具体对象类型需要单独启用才能生效,操作步骤如下:
- 给每个配置的对象类型添加
'enabled' => true配置项,以uploads(对应网站图标这类附件)为例:
其他如artifacts、lfs等类型也需要添加同样的gitlab_rails['object_store']['objects']['uploads']['bucket'] = 'gitlab/uploads' gitlab_rails['object_store']['objects']['uploads']['enabled'] = trueenabled配置,确保每个需要存储到S3的对象类型都明确开启。 - 执行配置重载命令让修改生效:
gitlab-ctl reconfigure - 重启GitLab服务:
gitlab-ctl restart
之后新上传的指定类型对象(包括网站图标)就会默认存入对应的S3存储桶。
问题2:迁移时Sidekiq报错“object storage is not enabled for FaviconUploader”的原因?
这个报错的核心原因是:
FaviconUploader属于uploads对象类型的子上传器,而你当前的配置中未开启uploads类型的对象存储(缺少'enabled' => true配置项)。即使全局object_store['enable']设为true,GitLab要求每个具体对象类型必须单独启用,否则无法识别该类型下属上传器的对象存储配置,迁移时就会触发该报错。
补充验证步骤
- 检查
gitlab.rb中所有需要迁移的对象类型是否都添加了enabled: true配置 - 执行
gitlab-ctl reconfigure后,查看/var/opt/gitlab/gitlab-rails/etc/gitlab.yml,确认对应对象类型的enabled字段为true,确保配置已正确加载 - 重新执行迁移命令验证问题是否解决
内容的提问来源于stack exchange,提问作者Gobus Knutz
相关产品推荐
相关产品推荐

