업로드 관리
GitLab v19.5Offering: GitLab Self-Managed
요약
업로드는 단일 파일로 GitLab에 전송될 수 있는 모든 사용자 데이터를 나타냅니다. 댓글이나 설명에 추가된 첨부 파일은 상위 프로젝트 또는 그룹이 삭제될 때만 삭제됩니다. 이것이 기본 구성입니다. 역사적인 이유로 전체 인스턴스의 업로드(예: 파비콘)는 기본 디렉터리에 저장되며, 기본값은 uploads/-/system입니다.
업로드는 단일 파일로 GitLab에 전송될 수 있는 모든 사용자 데이터를 나타냅니다. 예를 들어 아바타와 노트 첨부 파일이 업로드에 해당합니다. 업로드는 GitLab 기능에 필수적이므로 비활성화할 수 없습니다.
댓글이나 설명에 추가된 첨부 파일은 상위 프로젝트 또는 그룹이 삭제될 때만 삭제됩니다. 첨부 파일이 업로드된 댓글이나 리소스(이슈, 머지 리퀘스트, 에픽 등)가 삭제되더라도 첨부 파일은 파일 스토리지에 남아 있습니다.
로컬 스토리지 사용#
이것이 기본 구성입니다. 업로드가 로컬에 저장되는 위치를 변경하려면 설치 방법에 따라 이 섹션의 단계를 따릅니다:
역사적인 이유로 전체 인스턴스의 업로드(예: 파비콘)는 기본 디렉터리에 저장되며,
기본값은 uploads/-/system입니다. 기존 GitLab 설치에서 기본
디렉터리를 변경하는 것은 강력히 권장하지 않습니다.
Linux 패키지 설치의 경우:
업로드는 기본적으로 /var/opt/gitlab/gitlab-rails/uploads에 저장됩니다.
-
스토리지 경로를 변경하려면(예:
/mnt/storage/uploads)/etc/gitlab/gitlab.rb를 편집하고 다음 줄을 추가합니다:gitlab_rails['uploads_directory'] = "/mnt/storage/uploads"이 설정은
gitlab_rails['uploads_storage_path']디렉터리를 변경하지 않은 경우에만 적용됩니다. -
파일을 저장하고 변경 사항을 적용하려면 GitLab을 재구성합니다.
자체 컴파일 설치의 경우:
업로드는 기본적으로
/home/git/gitlab/public/uploads에 저장됩니다.
-
스토리지 경로를 변경하려면(예:
/mnt/storage/uploads)/home/git/gitlab/config/gitlab.yml을 편집하고 다음 줄을 추가하거나 수정합니다:uploads: storage_path: /mnt/storage base_dir: uploads -
파일을 저장하고 변경 사항을 적용하려면 GitLab을 재시작합니다.
오브젝트 스토리지 사용#
GitLab이 설치된 로컬 디스크를 업로드 저장에 사용하지 않으려면 AWS S3와 같은 오브젝트 스토리지 공급자를 대신 사용할 수 있습니다. 이 구성을 사용하려면 유효한 AWS 자격 증명이 이미 구성되어 있어야 합니다.
GitLab에서 오브젝트 스토리지를 사용하는 방법에 대해 자세히 알아봅니다.
오브젝트 스토리지 설정#
이 섹션에서는 스토리지별 구성 형식을 설명합니다. 대신 통합 오브젝트 스토리지 설정을 사용해야 합니다.
자체 컴파일 설치의 경우 다음 설정은 uploads: 아래 object_store:에 중첩됩니다. Linux
패키지 설치에서는 uploads_object_store_ 접두사가 붙습니다.
| 설정 | 설명 | 기본값 |
|---|---|---|
enabled |
오브젝트 스토리지 활성화/비활성화 | false |
remote_directory |
업로드가 저장되는 버킷 이름 | |
proxy_download |
제공되는 모든 파일을 프록시로 전달하려면 true로 설정합니다. false로 설정하면 클라이언트가 원격 스토리지에서 직접 다운로드하므로 GitLab 서버의 이그레스 트래픽이 줄어듭니다 |
false |
connection |
아래에 설명된 다양한 연결 옵션 |
연결 설정#
공급자별로 사용할 수 있는 연결 설정을 참고합니다.
Linux 패키지 설치의 경우:
업로드는 기본적으로
/var/opt/gitlab/gitlab-rails/uploads에 저장됩니다.
-
/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:allRake 작업으로 기존 로컬 업로드를 오브젝트 스토리지로 마이그레이션합니다.
자체 컴파일 설치의 경우:
업로드는 기본적으로
/home/git/gitlab/public/uploads에 저장됩니다.
-
/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 -
파일을 저장하고 변경 사항을 적용하려면 GitLab을 재시작합니다.
-
gitlab:uploads:migrate:allRake 작업으로 기존 로컬 업로드를 오브젝트 스토리지로 마이그레이션합니다.