アップロード管理

アップロードとは、GitLabに単一のファイルとして送信できるすべてのユーザーデータを表します。例えば、アバターやノートの添付ファイルはアップロードです。アップロードはGitLabの機能に不可欠なものなので、無効にすることはできません。

note
コメントや説明文に追加された添付ファイルは、親プロジェクトやグループが削除されたときにのみ削除されます。添付ファイルがアップロードされたコメントやリソース(イシュー、マージリクエスト、エピックなど)が削除されても、添付ファイルはファイルストレージに残ります。

ローカルストレージの使用

これはデフォルトの設定です。アップロードがローカルに保存される場所を変更するには、インストール方法に基づいてこのセクションの手順を使用します:

note
歴史的な理由から、インスタンス全体のアップロード(例えばファビコン)はベースディレクトリに保存されます。デフォルトでは、uploads/-/system。既存の GitLab インストールでベースディレクトリを変更することは強く推奨されません。

Linuxパッケージ・インストールの場合:

アップロードはデフォルトで/var/opt/gitlab/gitlab-rails/uploads に保存されます。

  1. 保存パスを変更するには、例えば/mnt/storage/uploads/etc/gitlab/gitlab.rb を編集し、以下の行を追加します:

    gitlab_rails['uploads_directory'] = "/mnt/storage/uploads"
    

    この設定は、gitlab_rails['uploads_storage_path'] ディレクトリを変更していない場合にのみ適用されます。

  2. ファイルを保存し、変更を有効にするためにGitLab を再設定してください。

セルフコンパイルによるインストールの場合:

アップロードはデフォルトで/home/git/gitlab/public/uploads に保存されます。

  1. 保存パスを変更するには、例えば、/mnt/storage/uploads/home/git/gitlab/config/gitlab.yml を編集し、以下の行を追加または修正してください:

    uploads:
      storage_path: /mnt/storage
      base_dir: uploads
    
  2. ファイルを保存してGitLab を再起動すると、変更が有効になります。

オブジェクトストレージを使う

GitLabがインストールされているローカルディスクをアップロードの保存に使いたくない場合は、代わりにAWS S3のようなオブジェクトストレージプロバイダを使うことができます。この設定は、有効な AWS 認証情報がすでに設定されていることに依存します。

GitLab でのオブジェクトストレージの使用について、詳しくはこちらをご覧ください。

オブジェクトストレージの設定

GitLab 13.2以降では、統合オブジェクトストレージ設定を使用する必要があります。このセクションでは、以前の設定フォーマットについて説明します。

セルフコンパイル・インストールでは、以下の設定はuploads: の下にネストされ、次にobject_store: となります。Linux パッケージのインストールでは、これらの設定の先頭にuploads_object_store_が付きます。

設定説明デフォルト
enabledオブジェクトストレージの有効化/無効化false
remote_directoryアップロードを保存するバケット名 
proxy_download true に設定すると、すべてのファイルのプロキシが有効になります。このオプションにより、クライアントがすべてのデータをプロキシする代わりにリモートストレージから直接ダウンロードできるようになるため、egress トラフィックを減らすことができます。false
connection以下に説明するさまざまな接続オプション 

接続設定

各プロバイダーで利用可能な接続設定を参照してください。

Linuxパッケージ・インストールの場合:

アップロードはデフォルトで/var/opt/gitlab/gitlab-rails/uploads に保存されます。

  1. /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
    }
    
  2. ファイルを保存し、変更を有効にするためにGitLab を再設定してください。
  3. gitlab:uploads:migrate:all Rake タスクを使って、既存のローカルアップロードをオブジェクトストレージにマイグレーションします。

セルフコンパイルによるインストールの場合:

アップロードはデフォルトで/home/git/gitlab/public/uploads に保存されます。

  1. /home/git/gitlab/config/gitlab.yml を編集し、以下の行を追加または修正してください:

    uploads:
      object_store:
        enabled: true
        remote_directory: "uploads" # The bucket name
        connection: # The lines in this block depend on your provider
          provider: AWS
          aws_access_key_id: AWS_ACCESS_KEY_ID
          aws_secret_access_key: AWS_SECRET_ACCESS_KEY
          region: eu-central-1
    
  2. ファイルを保存してGitLab を再起動すると、変更が有効になります。
  3. gitlab:uploads:migrate:all Rake タスクを使って、既存のローカルアップロードをオブジェクトストレージにマイグレーションします。