Skip to content

部署EXIF工具

EXIFExchangeable image file format(可交换图像文件格式),是专门为数码相机的照片设定的文件格式,可以记录数码照片的属性信息和拍摄数据。部署本工具后,可以解析并返回图片中的exif信息

1.创建配置文件

特别说明

注意:务必使用正确的json格式,否则服务无法启动!

创建文件

bash
# 创建文件
mkdir /etc/hzy
cd /etc/hzy
vim exif.json

文件内容示例

特别说明

这里是示例参数!请替换为真实的参数,并检查JSON格式是否正确

这里是示例参数!请替换为真实的参数,并检查JSON格式是否正确

这里是示例参数!请替换为真实的参数,并检查JSON格式是否正确

json
{
  "HTTP_PORT": 8080,
  "WHITE_IPS": ["192.168.151.1", "192.168.151.2"],
}

参数说明

bash
# 参数说明
HTTP_PORT        # 【必填】http协议端口号
WHITE_IPS        # 【可选】ip白名单,仅在白名单内的ip被允许访问(不配置则允许所有ip访问)

2.运行EXIF服务

启动服务

注意

必须使用 --network host 模式启动容器,否则无法获取到客户端ip,ip白名单无法生效

bash
docker run --privileged -e TZ=Asia/Shanghai -itd --restart always --network host -v /etc/hzy:/root/conf registry.cn-hangzhou.aliyuncs.com/hzy0code/hzy-utils:exif.x86.1.0.0

重启服务

注意

修改了配置文件后,需要使用以下命令重启服务

[CONTAINER ID]表示容器ID,使用docker ps命令可以查看容器ID

示例:

bash
docker restart [CONTAINER ID]

3.发送解析图片属性请求

接口描述

  • 方法: POST
  • URL:/parse_exif
  • 参数
    • picUrl:图片地址(必须以http开头)
    • fields:需要返回的属性字段(详细见fields描述)
  • 返回:成功返回fields指定的信息

fields参数

fields一共包含以下几类:

  • image: (图像)包含实际图像数据,即拍摄的照片或图像文件本身
  • thumbnail: (缩略图)通常用于显示图像的小尺寸版本,用于快速预览或显示图库中的图像
  • exif: (图像元数据)包含图像的元数据信息,例如相机型号、拍摄时间、光圈、快门速度等
  • gps: (位置信息)包含有关拍摄地点的经纬度信息
  • interoperability: (互操作性)包含与不同设备和软件之间交换数据有关的信息
  • makernote: (制造商注释):包含由相机制造商定义的特定于制造商的信息

请求示例

解析照片信息,并返回完整gps、image信息
POST http://192.168.123.1/parse_exif

json
{
    "picUrl": "https://aliyuncs.com/DJI_20240906114514_0002.JPG",
    "fields": ["gps", "image"]
}