# Uploads sanitize Rake tasks

> 原文：[https://docs.gitlab.com/ee/administration/raketasks/uploads/sanitize.html](https://docs.gitlab.com/ee/administration/raketasks/uploads/sanitize.html)

*   [Requirements](#requirements)
*   [Remove EXIF data from existing uploads](#remove-exif-data-from-existing-uploads)

# Uploads sanitize Rake tasks[](#uploads-sanitize-rake-tasks-core-only "Permalink")

从 GitLab 11.9 开始，EXIF 数据会自动从 JPG 或 TIFF 图像上传中删除.

EXIF 数据可能包含敏感信息（例如 GPS 位置），因此您可以从上传到 GitLab 早期版本的现有图像中删除 EXIF 数据.

## Requirements[](#requirements "Permalink")

要运行此 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[](#remove-exif-data-from-existing-uploads "Permalink")

要从现有的上载中删除 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 任务的输出中将出现一条错误消息. 典型的原因包括文件在存储中丢失或不是有效的映像.

[报告](https://gitlab.com/gitlab-org/gitlab/-/issues/new)所有问题，并在问题标题中使用前缀" EXIF"，以及错误输出和（如果可能）图像.