업로드 정리 Rake 태스크
Offering: GitLab Self-Managed
EXIF 데이터는 JPG 또는 TIFF 이미지 업로드 시 자동으로 제거됩니다. EXIF 데이터에는 민감한 정보(예: GPS 위치)가 포함될 수 있으므로, 이전 버전의 GitLab에 업로드된 기존 이미지에서 EXIF 데이터를 제거할 수 있습니다.
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 데이터를 제거하지 않고 존재 여부만 확인합니다. 기본값은 true |
sleep_time |
float | 각 이미지 처리 후 일시 정지할 시간(초). 기본값은 0.3초 |
uploader |
string | 지정된 업로더의 업로드에 대해서만 정리를 실행합니다: FileUploader, PersonalFileUploader, 또는 NamespaceFileUploader |
since |
date | 지정된 날짜 이후의 업로드에 대해서만 정리를 실행합니다. 예: 2019-05-01 |
업로드 수가 너무 많은 경우 다음 방법으로 정리 속도를 높일 수 있습니다:
sleep_time을 더 낮은 값으로 설정합니다.- 각각 별도의 업로드 ID 범위(
start_id및stop_id설정)로 여러 Rake 태스크를 병렬로 실행합니다.
모든 업로드에서 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' 접두사를 사용하고 보고하십시오.
