Uploads administration
Uploads administration
上传代表可以作为单个文件发送到 GitLab 的所有用户数据. 例如,化身和笔记的附件就是上载. 上传是 GitLab 功能不可或缺的,因此不能被禁用.
Using local storage
注意:这是默认配置
要更改上传内容在本地存储的位置,请按照以下步骤操作.
在所有安装中;
注意:由于历史原因,上载存储在基本目录中,默认情况下该目录为uploads/-/system
. 不建议在现有的 GitLab 安装上更改此配置选项.
上载默认情况下存储在/var/opt/gitlab/gitlab-rails/uploads
.
要将存储路径更改为例如
/mnt/storage/uploads
,请编辑/etc/gitlab/gitlab.rb
并添加以下行:gitlab_rails['uploads_storage_path'] = "/mnt/storage/"
gitlab_rails['uploads_base_dir'] = "uploads"
保存文件并重新配置 GitLab,以使更改生效.
在源安装中:
上载默认存储在/home/git/gitlab/public/uploads/-/system
.
要将存储路径更改为例如
/mnt/storage/uploads
,请编辑/home/git/gitlab/config/gitlab.yml
并添加或修改以下行:uploads:
storage_path: /mnt/storage
base_dir: uploads
保存文件并重新启动 GitLab,以使更改生效.
Using object storage
版本历史
笔记:
- 在GitLab Premium 10.5 中引入 .
- 在GitLab Core 10.7 中引入 .
- 从 11.1 版开始,我们支持 direct_upload 到 S3.
如果您不想使用安装了 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
.
编辑
/etc/gitlab/gitlab.rb
并通过替换为所需的值添加以下行:gitlab_rails['uploads_object_store_enabled'] = true
gitlab_rails['uploads_object_store_remote_directory'] = "uploads"
gitlab_rails['uploads_object_store_connection'] = {
'provider' => 'AWS',
'region' => 'eu-central-1',
'aws_access_key_id' => 'AWS_ACCESS_KEY_ID',
'aws_secret_access_key' => 'AWS_SECRET_ACCESS_KEY'
}
注意:如果您使用的是 AWS IAM 配置文件,请确保省略 AWS 访问密钥和秘密访问密钥/值对.
gitlab_rails['uploads_object_store_connection'] = {
'provider' => 'AWS',
'region' => 'eu-central-1',
'use_iam_profile' => true
}
保存文件并重新配置 GitLab,以使更改生效.
- 使用
gitlab:uploads:migrate
Rake task迁移所有现有的本地上传到对象存储.
在源安装中:
上载默认存储在/home/git/gitlab/public/uploads/-/system
.
编辑
/home/git/gitlab/config/gitlab.yml
并添加或修改以下行:uploads:
object_store:
enabled: true
remote_directory: "uploads" # The bucket name
connection:
provider: AWS # Only AWS supported at the moment
aws_access_key_id: AWS_ACESS_KEY_ID
aws_secret_access_key: AWS_SECRET_ACCESS_KEY
region: eu-central-1
保存文件并重新启动 GitLab,以使更改生效.
- 使用
gitlab:uploads:migrate
Rake task迁移所有现有的本地上传到对象存储.
OpenStack example
在所有安装中;
上载默认情况下存储在/var/opt/gitlab/gitlab-rails/public/uploads/-/system
.
Edit
/etc/gitlab/gitlab.rb
and add the following lines by replacing with the values you want:gitlab_rails['uploads_object_store_remote_directory'] = "OPENSTACK_OBJECT_CONTAINER_NAME"
gitlab_rails['uploads_object_store_connection'] = {
'provider' => 'OpenStack',
'openstack_username' => 'OPENSTACK_USERNAME',
'openstack_api_key' => 'OPENSTACK_PASSWORD',
'openstack_temp_url_key' => 'OPENSTACK_TEMP_URL_KEY',
'openstack_auth_url' => 'https://auth.cloud.ovh.net/v2.0/',
'openstack_region' => 'DE1',
'openstack_tenant' => 'TENANT_ID',
}
保存文件并重新配置 GitLab,以使更改生效.
- 使用
gitlab:uploads:migrate
Rake task迁移所有现有的本地上传到对象存储.
在源安装中:
上载默认存储在/home/git/gitlab/public/uploads/-/system
.
编辑
/home/git/gitlab/config/gitlab.yml
并添加或修改以下行:uploads:
object_store:
enabled: true
direct_upload: false
background_upload: true
proxy_download: false
remote_directory: OPENSTACK_OBJECT_CONTAINER_NAME
connection:
provider: OpenStack
openstack_username: OPENSTACK_USERNAME
openstack_api_key: OPENSTACK_PASSWORD
openstack_temp_url_key: OPENSTACK_TEMP_URL_KEY
openstack_auth_url: 'https://auth.cloud.ovh.net/v2.0/'
openstack_region: DE1
openstack_tenant: 'TENANT_ID'
保存文件并重新配置 GitLab,以使更改生效.
- 使用
gitlab:uploads:migrate
Rake task迁移所有现有的本地上传到对象存储.