Uploads sanitize Rake tasks
原文:https://docs.gitlab.com/ee/administration/raketasks/uploads/sanitize.html
Uploads sanitize Rake tasks
从 GitLab 11.9 开始,EXIF 数据会自动从 JPG 或 TIFF 图像上传中删除.
EXIF 数据可能包含敏感信息(例如 GPS 位置),因此您可以从上传到 GitLab 早期版本的现有图像中删除 EXIF 数据.
Requirements
要运行此 Rake 任务,需要在系统上安装exiftool . 如果安装了 GitLab:
- 使用 Omnibus 软件包,您已经准备就绪.
 从源代码中,确保已安装
exiftool:# Debian/Ubuntu sudo apt-get install libimage-exiftool-perl # RHEL/CentOS sudo yum install perl-Image-ExifTool
Remove EXIF data from existing uploads
要从现有的上载中删除 EXIF 数据,请运行以下命令:
sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:uploads:sanitize:remove_exif 
默认情况下,此命令以"空运行"模式运行,并且不会删除 EXIF 数据. 它可用于检查是否应清理图像(以及多少).
Rake 任务接受以下参数.
| Parameter | Type | Description | 
|---|---|---|
 start_id  | 
integer | 仅处理 ID 相同或更大的上载 | 
 stop_id  | 
integer | 仅处理 ID 等于或小于 ID 的上传 | 
 dry_run  | 
boolean |  不要删除 EXIF 数据,仅检查是否存在 EXIF 数据. 默认为true  | 
 sleep_time  | 
float | 处理每个图像后暂停几秒钟. 默认为 0.3 秒 | 
 uploader  | 
string |  仅对给定上传者的上传运行清理: FileUploader , PersonalFileUploader或NamespaceFileUploader  | 
 since  | 
date |  仅对早于给定日期的上传文件进行清理. 例如2019-05-01 | 
如果上传的文件过多,则可以通过以下方法加快清理速度:
- 将
sleep_time设置为较低的值. - 并行运行多个 Rake 任务,每个任务都有单独的上传 ID 范围(通过设置
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 
To remove EXIF data on uploads with an ID between 100 and 5000 and pause for 0.1 second after each file, use:
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",以及错误输出和(如果可能)图像.