업로드 데이터 정리 Rake 작업

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

EXIF 데이터는 JPG 또는 TIFF 이미지 업로드에서 자동으로 제거됩니다.

EXIF 데이터는 민감한 정보(예: GPS 위치)를 포함할 수 있으므로, 이전 버전의 GitLab에 업로드된 기존 이미지에서 EXIF 데이터를 제거할 수 있습니다.

전제 조건

이 Rake 작업을 실행하려면 시스템에 exiftool이 설치되어 있어야 합니다. GitLab을 설치한 경우:

  • Linux 패키지를 사용한 경우, 모든 준비가 완료되었습니다.
  • 직접 컴파일한 설치를 사용한 경우, exiftool이 설치되어 있는지 확인하세요:

    # Debian/Ubuntu
    sudo apt-get install libimage-exiftool-perl
    
    # RHEL/CentOS
    sudo yum install perl-Image-ExifTool
    

기존 업로드에서 EXIF 데이터 제거

기존 업로드에서 EXIF 데이터를 제거하려면 다음 명령을 실행하세요:

sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:uploads:sanitize:remove_exif

기본적으로 이 명령은 “드라이 런” 모드에서 실행되며, EXIF 데이터를 제거하지 않습니다. 이는 이미지를 정리해야 하는지(그리고 얼마나 많은 이미지를 정리해야 하는지) 확인하는 데 사용될 수 있습니다.

Rake 작업은 다음 매개변수를 허용합니다.

매개변수 유형 설명
start_id integer ID가 같거나 큰 업로드만 처리됩니다.
stop_id integer ID가 같거나 작은 업로드만 처리됩니다.
dry_run boolean EXIF 데이터를 제거하지 않고, EXIF 데이터가 존재하는지 여부만 확인합니다. 기본값은 true입니다.
sleep_time float 각 이미지 처리 후 대기할 시간을 초 단위로 설정합니다. 기본값은 0.3초입니다.
uploader string 지정된 업로더의 업로드에 대해서만 정리를 실행합니다: FileUploader, PersonalFileUploader, 또는 NamespaceFileUploader
since date 지정한 날짜 이후에 업로드된 항목에 대해서만 정리를 실행합니다. 예: 2019-05-01

업로드가 너무 많을 경우, 정리를 빠르게 하려면 다음을 설정하세요:

  • sleep_time을 더 낮은 값으로 설정합니다.
  • 각기 다른 업로드 ID 범위를 가진 여러 Rake 작업을 병렬로 실행합니다( start_idstop_id 설정).

모든 업로드에서 EXIF 데이터를 제거하려면 다음을 사용하세요:

sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:uploads:sanitize:remove_exif[,,false,] 2>&1 | tee exif.log

ID가 100에서 5000 사이의 업로드에서 EXIF 데이터를 제거하고 각 파일 후 0.1초 동안 대기하려면 다음을 사용하세요:

sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:uploads:sanitize:remove_exif[100,5000,false,0.1] 2>&1 | tee exif.log

출력은 exif.log 파일에 기록되며, 이 파일은 종종 길기 때문입니다.

업로드에 대한 정리가 실패하면, 오류 메시지는 Rake 작업의 출력에 포함되어야 합니다. 일반적인 이유는 파일이 저장소에서 누락되었거나 유효한 이미지가 아닐 수 있습니다.

문제 보고하기 문제를 신고하고 문제 제목에 ‘EXIF’ 접두사를 사용하여 오류 출력 및 (가능한 경우) 이미지를 포함하세요.