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迁移所有现有的本地上传到对象存储.