업로드 관리

Tier: Free, Premium, Ultimate Offering: Self-managed

업로드는 단일 파일로 GitLab으로 전송될 수 있는 모든 사용자 데이터를 나타냅니다. 예를 들어, 아바타와 노트 첨부 파일이 업로드에 해당합니다. 업로드는 GitLab 기능에 불가결하며 따라서 비활성화할 수 없습니다.

note
코멘트나 설명에 첨부된 첨부 파일은 해당 프로젝트나 그룹이 삭제될 때에만 삭제됩니다. 첨부 파일은 해당 코멘트나 리소스(예: 이슈, MR, Epic)가 삭제되더라도 파일 리포지터리에 남아 있습니다.

로컬 스토리지 사용

이것은 기본 설정입니다. 업로드가 로컬로 저장되는 위치를 변경하려면 설치 방법에 따라 이 섹션의 단계를 따르세요:

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을 다시 시작하세요.

객체 스토리지 사용

Tier: Free, Premium, Ultimate Offering: Self-managed

GitLab이 설치된 로컬 디스크를 사용하지 않고 업로드를 저장하려면 AWS S3와 같은 객체 스토리지 제공업체를 사용할 수 있습니다. 이 구성은 유효한 AWS 자격 증명이 이미 구성되어 있는 것을 전제로 합니다.

GitLab과 객체 스토리지를 사용하는 방법에 대해 더 알아보기.

객체 스토리지 설정

GitLab 13.2 이상에서는 통합된 객체 스토리지 설정을 사용해야 합니다. 이 섹션은 이전의 구성 형식을 설명합니다.

자체 컴파일 설치의 경우, 다음 설정은 uploads: 아래와 그 다음으로 중첩됩니다. Linux 패키지 설치의 경우, 이들은 uploads_object_store_로 접두어가 붙습니다.

설정 설명 기본값
enabled 객체 스토리지 사용 설정 false
remote_directory 업로드가 저장된 버킷 이름  
proxy_download 모든 파일을 프록시하는 것을 가능하게 하려면 true로 설정하세요. 이 옵션은 클라이언트가 모든 데이터를 프록시하는 대신 원격 리포지터리에서 직접 다운로드하도록 하여 외부 트래픽을 줄일 수 있습니다. false
connection 아래에서 설명하는 다양한 연결 옵션  

연결 설정

각 제공업체별 사용 가능한 연결 설정을 여기에서 확인하세요.

Linux 패키지 설치의 경우:

업로드는 기본적으로 /var/opt/gitlab/gitlab-rails/uploads에 저장됩니다.

  1. 원하는 값으로 변경하여 다음 줄을 추가하세요. 여기서 값은 원하는 값으로 대체하세요.

    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 래크 태스크로 객체 스토리지로 마이그레이션하세요.

자체 컴파일 설치의 경우:

업로드는 기본적으로 /home/git/gitlab/public/uploads에 저장됩니다.

  1. 제공업체에 적합한 것을 사용하여 다음 줄을 추가하거나 수정하세요.

    uploads:
      object_store:
        enabled: true
        remote_directory: "uploads" # 버킷 이름
        connection: # 이 블록 안의 줄은 제공업체에 따라 다릅니다
          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 래크 태스크로 객체 스토리지로 마이그레이션하세요.