GitLab Git LFS管理

关于如何使用Git LFS的文档在下面使用Git LFS文档管理大型二进制文件

需求

  • 从8.2版本开始,GitLab支持Git LFS。
  • 在10.0中引入了对对象存储(如AWS S3)的支持。
  • 用户需要安装Git LFS客户端1.0.1及更高版本。

配置

Git LFS对象的大小可以很大。默认情况下,它们存储在安装了GitLab的服务器上。

有各种配置选项可以帮助GitLab服务器管理员:

  • 启用/禁用Git LFS支持
  • 修改LFS对象存储的位置
  • 设置兼容AWS S3的对象存储

Omnibus安装的配置

/etc/gitlab/gitlab.rb

#更改为true以启用lfsgitlab_rails“lfs_enabled”#可选,更改存储路径位置。默认为# " # {gitlab_rails [' shared_path ']} / lfs-objects’。其计算结果为# ' /var/opt/gitlab/gitlab-rails/shared/lfs-objects 'gitlab_rails“lfs_storage_path”“/ mnt /存储/ lfs-objects”

从源代码安装的配置

配置/ gitlab.yml

#更改为true以启用lfslfs启用storage_path/ mnt /存储/ lfs-objects

将LFS对象存储在兼容s3的对象存储中

介绍了GitLab溢价10.0.在10.7中被引入GitLab Core。

可以将LFS对象存储在远程对象存储上,这允许您将存储卸载到外部AWS S3兼容服务,从而释放本地磁盘空间。您还可以托管与GitLab分离的自己的S3兼容存储,使用诸如Minio

对象存储当前首先将文件传输到GitLab,然后在第二阶段传输到对象存储。这可以通过使用rake任务来传输现有对象,也可以在接收到每个文件后在后台作业中完成。

支持以下常规设置。

设置 描述 默认的
启用 启用/禁用对象存储
remote_directory 存储LFS对象的桶名
direct_upload 设置为true将启用直接上传LFS,而不需要本地共享存储。一旦我们决定只支持所有文件的单一存储,该选项可能会被删除。
background_upload 设置为false表示禁用自动上传。一旦直接上载到S3,该选项可能会被删除 真正的
proxy_download 设置为true将启用代理所有文件。选项允许减少出口流量,因为这允许客户端直接从远程存储下载,而不是代理所有数据
连接 下面描述的各种连接选项

连接提供的设置匹配

设置 描述 默认的
提供者 总是AWS兼容主机 AWS
aws_access_key_id AWS凭证,或兼容
aws_secret_access_key AWS凭证,或兼容
地区 AWS地区 us-east-1
宿主 S3兼容主机,当不使用AWS时,例如。本地主机storage.example.com s3.amazonaws.com
端点 可以在配置S3兼容服务时使用,例如Minio,输入URL,例如http://127.0.0.1:9000 (可选)
path_style 设置为true才能使用主机/ bucket_name /对象样式路径而不是bucket_name.host /对象。对于AWS S3设置为false

S3用于Omnibus安装

在Omnibus安装中,设置的前缀是lfs_object_store_

  1. 编辑/etc/gitlab/gitlab.rb然后用你想要的值替换下面的行:

    gitlab_rails“lfs_object_store_enabled”真正的gitlab_rails“lfs_object_store_remote_directory”“lfs-objects”gitlab_rails“lfs_object_store_connection”{“供应商”=>AWS的“地区”=>“eu-central-1”“aws_access_key_id”=>“1 abcd2efghi34jklm567n”“aws_secret_access_key”=>“abcdefhijklmnopQRSTUVwxyz0123456789ABCDE”下面的选项配置S3兼容主机而不是AWS“主机”=>“localhost”“端点”=>“http://127.0.0.1:9000”“path_style”=>真正的}
  2. 保存文件并重新配置GitLabS使更改生效。

  3. 将任何现有的本地LFS对象迁移到对象存储:

    gitlab-rake gitlab: lfs:迁移

    这将把现有的LFS对象迁移到对象存储。新的LFS对象将被转发到对象存储,除非gitlab_rails(“lfs_object_store_background_upload”)设置为false。

S3用于从源代码安装

对于源安装,设置嵌套在lfs:然后object_store:

  1. 编辑/home/git/gitlab/config/gitlab.yml并增加或修改以下几行:

    lfs启用真正的object_store启用remote_directorylfs-objects#桶名连接提供者AWSaws_access_key_id1 abcd2efghi34jklm567naws_secret_access_keyabcdefhijklmnopQRSTUVwxyz0123456789ABCDE地区eu-central-1使用以下选项配置AWS兼容主机(如Minio)宿主本地主机的端点http://127.0.0.1:9000的path_style真正的
  2. 保存文件并重启GitLab使更改生效。

  3. 将任何现有的本地LFS对象迁移到对象存储:

    sudo- ugit- h执行rake gitlab: lfs:迁移RAILS_ENV生产

    这将把现有的LFS对象迁移到对象存储。新的LFS对象将被转发到对象存储,除非background_upload设置为false。

存储数据

您可以在管理区域中查看组和项目上LFS对象使用的总存储空间,也可以通过项目的api

已知的限制

  • 8.14以后增加了对删除未引用的LFS对象的支持。
  • 通过SSH的LFS认证是在GitLab 8.12中添加的
  • 仅兼容GitLFS客户端版本1.1.0及以上,或1.0.2。
  • 存储统计信息当前对每个链接到LFS对象的项目进行多次计数
Baidu
map