アップロード管理
アップロードは、GitLabに単一のファイルとして送信することができるすべてのユーザーデータを表します。 例として、アバターやノートの添付ファイルはアップロードです。 アップロードはGitLabの機能に不可欠であるため、無効にすることはできません。
ローカルストレージの使用
アップロードがローカルに保存される場所を変更するには、以下の手順に従ってください。
オムニバスのインストールで:
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を再起動して変更を有効にします。
オブジェクトストレージの使用
注:
- GitLab Premium10.5で導入されました。
- GitLab Core10.7 で導入されました。
- バージョン 11.1 以降、S3 への direct_upload をサポートしています。
GitLab がインストールされているローカルディスクをアップロードの保存に使いたくない場合は、代わりに AWS S3 のようなオブジェクトストレージプロバイダを使うことができます。 この設定は、有効な AWS 認証情報がすでに設定されていることに依存します。
GitLabでのオブジェクトストレージの使用についてはこちらをご覧ください。
オブジェクトストレージの設定
ソースのインストールでは、以下の設定はuploads:
の下にネストされ、次にobject_store:
となります。Omnibus GitLab のインストールでは、これらの設定の前にuploads_object_store_
が付きます。
設定 | 説明 | デフォルト |
---|---|---|
enabled
| オブジェクトストレージの有効化/無効化 | false
|
remote_directory
| アップロードが保存されるバケット名 | |
direct_upload
| アップロードパスからPumaを削除するにはtrueを設定します。 Workhorseはオブジェクトストレージへの実際のアーティファクトアップロードを処理し、Pumaはアップロードを追跡するための最小限の処理を行います。 ローカルの共有ストレージは必要ありません。 すべてのファイルに単一のストレージタイプをサポートするようになった場合、このオプションは削除される可能性があります。直接アップロードの詳細を読む。 | false
|
background_upload
| 自動アップロードを無効にするにはfalseに設定します。 S3への直接アップロードが完了すると、このオプションは削除されます(direct_upload がtrue に設定されている場合は、background_upload が上書きされます)。
| true
|
proxy_download
| 送信されたすべてのファイルのプロキシを有効にするには、true を設定します。 このオプションは、すべてのデータをプロキシする代わりに、クライアントがリモートストレージから直接ダウンロードできるようにするため、イグレストラフィックを減らすことができます。 | false
|
connection
| 以下の様々な接続オプション |
S3互換接続設定
接続設定はフォグが提供するものと同じで、以下の通りです:
設定 | 説明 | デフォルト |
---|---|---|
provider
| 常に互換性のあるホストに対してAWS
| AWS
|
aws_access_key_id
| AWSクレデンシャル、または互換性のあるもの | |
aws_secret_access_key
| AWSクレデンシャル、または互換性のあるもの | |
aws_signature_version
| 使用するAWS署名のバージョン。2 または4 が有効なオプションです。Digital Ocean Spacesやその他のプロバイダでは、2 が必要な場合があります。
| 4
|
enable_signature_v4_streaming
|
AWS v4 署名でHTTP チャンク転送を有効にするには、true に設定します。 Oracle Cloud S3 では、false に設定する必要があります。
| true
|
region
| AWSリージョン | 米東1 |
host
| AWSを使用しない場合のS3互換ホスト(例:localhost またはstorage.example.com
| s3.amazonaws.com
|
endpoint
|
MinIOなどのS3互換サービスを設定する際に、以下のようなURLを入力することで使用できます。http://127.0.0.1:9000
| (オプション) |
path_style
|
bucket_name.host/object の代わりにhost/bucket_name/object スタイルのパスを使用する場合はtrue に設定します。 AWS S3 の場合はfalse のままにします。
| false
|
use_iam_profile
| アクセスキーの代わりに IAM プロファイルを使用するには、true に設定します。
| false |
オムニバスのインストールで:
アップロードはデフォルトで/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タスクを使って、既存のローカルアップロードをオブジェクトストレージに移行します。
ソースからのインストールで:
アップロードはデフォルトで/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タスクを使って、既存のローカルアップロードをオブジェクトストレージに移行します。
Oracle Cloud S3接続設定
Oracle Cloud S3は以下の設定を必ず使用する必要があることに注意してください:
設定 | 値 |
---|---|
enable_signature_v4_streaming
| false
|
path_style
| true
|
enable_signature_v4_streaming
がtrue
に設定されている場合、以下のエラーが表示されることがあります:
STREAMING-AWS4-HMAC-SHA256-PAYLOAD is not supported
OpenStack互換の接続設定
接続設定はフォグが提供するものと同じで、以下の通りです:
設定 | 説明 | デフォルト |
---|---|---|
provider
| 常に互換性のあるホストに対してOpenStack
| OpenStack
|
openstack_username
| OpenStackユーザー名 | |
openstack_api_key
| OpenStack API キー | |
openstack_temp_url_key
| 一時的な URL を生成するための OpenStack キー | |
openstack_auth_url
| OpenStack 認証エンドポイント | |
openstack_region
| OpenStackリージョン | |
openstack_tenant
| OpenStackテナントID |
オムニバスのインストールで:
アップロードはデフォルトで/var/opt/gitlab/gitlab-rails/public/uploads/-/system
に保存されます。
-
/etc/gitlab/gitlab.rb
を編集し、以下の行を必要な値に置き換えて追加します: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タスクを使って、既存のローカルアップロードをオブジェクトストレージに移行します。
ソースからのインストールで:
アップロードはデフォルトで/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タスクを使って、既存のローカルアップロードをオブジェクトストレージに移行します。