업로드 샌디타이즈 Rake 작업
JPG 또는 TIFF 이미지 업로드에서 EXIF 데이터가 자동으로 제거됩니다.
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
| 정수 | 같거나 더 큰 ID를 가진 업로드만 처리됨 |
stop_id
| 정수 | 같거나 더 작은 ID를 가진 업로드만 처리됨 |
dry_run
| 부울 | EXIF 데이터를 제거하지 않고, 존재 여부만 확인함. 기본값은 true
|
sleep_time
| 부동소숫점 | 각 이미지 처리 후 지연될 초 수. 기본값은 0.3초 |
uploader
| 문자열 | 주어진 업로더(FileUploader , PersonalFileUploader , 또는 NamespaceFileUploader )의 업로드에 대해 산화화 실행
|
since
| 날짜 | 주어진 날짜 이후의 업로드에 대해 산화화 실행. 예: 2019-05-01
|
너무 많은 업로드가 있는 경우, 산화화를 가속화할 수 있습니다:
-
sleep_time
을 낮은 값으로 설정합니다. - 별도의 업로드 ID 범위별로 병렬로 여러 Rake 작업을 실행합니다(
start_id
와stop_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
산화화 중에 어떤 업로드에서 실패한 경우 Rake 작업의 출력에 오류 메시지가 있습니다. 일반적인 이유로는 리포지터리에 파일이 없거나 유효한 이미지가 아닐 수 있습니다.
어떤 문제가 발생한다면 이슈를 보고하고 이슈 제목에 오류 출력과(가능하면) 이미지의 ‘EXIF’ 접두어를 사용하세요.