업로드 데이터 정리 Rake 작업
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_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
출력은 exif.log
파일에 기록되며, 이 파일은 종종 길기 때문입니다.
업로드에 대한 정리가 실패하면, 오류 메시지는 Rake 작업의 출력에 포함되어야 합니다. 일반적인 이유는 파일이 저장소에서 누락되었거나 유효한 이미지가 아닐 수 있습니다.
문제 보고하기 문제를 신고하고 문제 제목에 ‘EXIF’ 접두사를 사용하여 오류 출력 및 (가능한 경우) 이미지를 포함하세요.