Uploads administration

原文:https://docs.gitlab.com/ee/administration/uploads.html

Uploads administration

上传代表可以作为单个文件发送到 GitLab 的所有用户数据. 例如,化身和笔记的附件就是上载. 上传是 GitLab 功能不可或缺的,因此不能被禁用.

Using local storage

注意:这是默认配置

要更改上传内容在本地存储的位置,请按照以下步骤操作.

在所有安装中;

注意:由于历史原因,上载存储在基本目录中,默认情况下该目录为uploads/-/system . 不建议在现有的 GitLab 安装上更改此配置选项.

上载默认情况下存储在/var/opt/gitlab/gitlab-rails/uploads .

  1. 要将存储路径更改为例如/mnt/storage/uploads ,请编辑/etc/gitlab/gitlab.rb并添加以下行:

    1. gitlab_rails['uploads_storage_path'] = "/mnt/storage/"
    2. gitlab_rails['uploads_base_dir'] = "uploads"
  2. 保存文件并重新配置 GitLab,以使更改生效.

在源安装中:

上载默认存储在/home/git/gitlab/public/uploads/-/system .

  1. 要将存储路径更改为例如/mnt/storage/uploads ,请编辑/home/git/gitlab/config/gitlab.yml并添加或修改以下行:

    1. uploads:
    2. storage_path: /mnt/storage
    3. base_dir: uploads
  2. 保存文件并重新启动 GitLab,以使更改生效.

Using object storage

版本历史

笔记:

如果您不想使用安装了 GitLab 的本地磁盘来存储上载,则可以改用 AWS S3 之类的对象存储提供程序. 此配置依赖于已经配置的有效 AWS 凭证.

Read more about using object storage with GitLab.

注意:我们建议使用统一对象存储设置 . 以下说明适用于原始配置格式.

Object Storage Settings

对于源安装,以下设置嵌套在uploads:下,然后是object_store: 在 Omnibus GitLab 安装上,它们的前缀是uploads_object_store_ .

Setting Description Default
enabled 启用/禁用对象存储 false
remote_directory 存储上传文件的存储桶名称
direct_upload 设置为 true 可从上载路径中删除 Puma. Workhorse 处理实际的工件上传到对象存储,而 Puma 进行最少的处理以跟踪上传. 无需本地共享存储. 如果引入了对所有文件的单一存储类型的支持,则可以删除该选项. 了解更多有关直接上传的信息 . false
background_upload 设置为 false 可禁用自动上传. 一旦直接上传到 S3,就可以删除该选项(如果direct_upload设置为true ,它将覆盖background_upload true
proxy_download 设置为 true 以启用代理服务的所有文件. Option 可以减少出口流量,因为这允许客户端直接从远程存储下载而不是代理所有数据 false
connection 下述各种连接选项

Connection settings

See the available connection settings for different providers.

在所有安装中;

上载默认情况下存储在/var/opt/gitlab/gitlab-rails/public/uploads/-/system .

  1. 编辑/etc/gitlab/gitlab.rb并通过替换为所需的值添加以下行:

    1. gitlab_rails['uploads_object_store_enabled'] = true
    2. gitlab_rails['uploads_object_store_remote_directory'] = "uploads"
    3. gitlab_rails['uploads_object_store_connection'] = {
    4. 'provider' => 'AWS',
    5. 'region' => 'eu-central-1',
    6. 'aws_access_key_id' => 'AWS_ACCESS_KEY_ID',
    7. 'aws_secret_access_key' => 'AWS_SECRET_ACCESS_KEY'
    8. }

    注意:如果您使用的是 AWS IAM 配置文件,请确保省略 AWS 访问密钥和秘密访问密钥/值对.

    1. gitlab_rails['uploads_object_store_connection'] = {
    2. 'provider' => 'AWS',
    3. 'region' => 'eu-central-1',
    4. 'use_iam_profile' => true
    5. }
  2. 保存文件并重新配置 GitLab,以使更改生效.

  3. 使用gitlab:uploads:migrate Rake task迁移所有现有的本地上传到对象存储.

在源安装中:

上载默认存储在/home/git/gitlab/public/uploads/-/system .

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

    1. uploads:
    2. object_store:
    3. enabled: true
    4. remote_directory: "uploads" # The bucket name
    5. connection:
    6. provider: AWS # Only AWS supported at the moment
    7. aws_access_key_id: AWS_ACESS_KEY_ID
    8. aws_secret_access_key: AWS_SECRET_ACCESS_KEY
    9. region: eu-central-1
  2. 保存文件并重新启动 GitLab,以使更改生效.

  3. 使用gitlab:uploads:migrate Rake task迁移所有现有的本地上传到对象存储.

OpenStack example

在所有安装中;

上载默认情况下存储在/var/opt/gitlab/gitlab-rails/public/uploads/-/system .

  1. Edit /etc/gitlab/gitlab.rb and add the following lines by replacing with the values you want:

    1. gitlab_rails['uploads_object_store_remote_directory'] = "OPENSTACK_OBJECT_CONTAINER_NAME"
    2. gitlab_rails['uploads_object_store_connection'] = {
    3. 'provider' => 'OpenStack',
    4. 'openstack_username' => 'OPENSTACK_USERNAME',
    5. 'openstack_api_key' => 'OPENSTACK_PASSWORD',
    6. 'openstack_temp_url_key' => 'OPENSTACK_TEMP_URL_KEY',
    7. 'openstack_auth_url' => 'https://auth.cloud.ovh.net/v2.0/',
    8. 'openstack_region' => 'DE1',
    9. 'openstack_tenant' => 'TENANT_ID',
    10. }
  2. 保存文件并重新配置 GitLab,以使更改生效.

  3. 使用gitlab:uploads:migrate Rake task迁移所有现有的本地上传到对象存储.

在源安装中:

上载默认存储在/home/git/gitlab/public/uploads/-/system .

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

    1. uploads:
    2. object_store:
    3. enabled: true
    4. direct_upload: false
    5. background_upload: true
    6. proxy_download: false
    7. remote_directory: OPENSTACK_OBJECT_CONTAINER_NAME
    8. connection:
    9. provider: OpenStack
    10. openstack_username: OPENSTACK_USERNAME
    11. openstack_api_key: OPENSTACK_PASSWORD
    12. openstack_temp_url_key: OPENSTACK_TEMP_URL_KEY
    13. openstack_auth_url: 'https://auth.cloud.ovh.net/v2.0/'
    14. openstack_region: DE1
    15. openstack_tenant: 'TENANT_ID'
  2. 保存文件并重新配置 GitLab,以使更改生效.

  3. 使用gitlab:uploads:migrate Rake task迁移所有现有的本地上传到对象存储.