zoukankan      html  css  js  c++  java
  • 基于CentOS体验万象优图鉴黄服务

    系统要求:CentOS 7.2 64 位操作系统

    初始化配置

    使用万象优图图片鉴黄 API 接口,我们需要先完成以下步骤:

    • 获取腾讯云账号 APP ID
    • 配置云 API 公钥/密钥
    • 配置优图 bucket

    首先在终端执行以下命令,创建目录 /data/try-pi,然后进入到该目录:

    mkdir -p /data/try-pi && cd $_

    然后在目录 /data/try-pi 下创建 init.sh 文件,在文件中贴入以下脚本:

    示例代码:/data/try-pi/init.sh
     1 #!/bin/bash
     2 
     3 #########################################
     4 # 基础配置
     5 #########################################
     6 
     7 # 腾讯云账号 APP ID
     8 # 在如下单引号内填入你的 APPID
     9 export APP_ID=''
    10 
    11 # 云 API 公钥
    12 # 在如单引号内填入你的 SecretID
    13 export SECRET_ID=''
    14 
    15 # 云 API 密钥
    16 # 在如下单引号内填入你的 SecretKey
    17 export SECRET_KEY=''
    18 
    19 # 优图 bucket 名称
    20 # 如果你创建的 bucket 名称不叫 trial,替换为自己创建的即可
    21 export BUCKET_NAME='trial'

    可以看到配置文件中要求我们填入以下信息:

    • 腾讯云账号 APP ID
    • 云 API 公钥/密钥
    • 优图 bucket 名称

    其中,腾讯云账号 APP ID 及 云 API 公钥/密钥 可以点击这里前往腾讯云控制台 云 API 密钥 - 个人 API 密钥 页面查看。

    如果你还没有创建过密钥,可以在该页面点击 +新建密钥 按钮创建一个,然后将对应信息填入到 init.sh 文件中,按键 [Ctrl + S] 进行保存。

    点击这里前往腾讯云控制台 万象优图 - Bucket管理 页面创建一个名称为 trial,其他选项默认即可。

    将配置项导出为环境变量

    在终端中执行以下命令,将各配置项导出为 Shell 环境变量:

    source init.sh

    可以通过以下命令来验证各配置项是否已正常导出:

    echo $APP_ID
    echo $SECRET_ID
    echo $SECRET_KEY
    echo $BUCKET_NAME

    生成鉴权签名

    新建脚本生成签名

    基础配置完成后,我们在此基础上还需生成[鉴权签名],因为调用万象优图 API 接口需要用到它。我们将创建脚本来生成有效期为 30 天的多次有效的签名。

    在目录 /data/try-pi 下创建 gen-sign.sh 文件,然后在文件中贴入以下脚本:

    示例代码:/data/try-pi/gen-sign.sh
     1 #!/bin/bash
     2 
     3 #########################################
     4 # 生成多次有效的鉴权签名(有效期 30 天) 
     5 # @see https://cloud.tencent.com/document/product/460/6968
     6 #########################################
     7 
     8 # 当前时间戳(秒)
     9 current_time=$(date +%s)
    10 
    11 # 到期时间戳(秒)
    12 expire_time=$(($current_time + 30 * 24 * 60 * 60))
    13 
    14 # 随机串,无符号 10 进制整数(不大于 10 位)
    15 rand='4815162342'
    16 
    17 # 历史遗留字段,写死为 0
    18 user_id='0'
    19 
    20 # 拼接签名串
    21 str="a=$APP_ID&b=$BUCKET_NAME&k=$SECRET_ID&e=$expire_time&t=$current_time&r=$rand&u=$user_id";
    22 
    23 # 使用 HMAC-SHA1 算法对签名串加密
    24 sign=$(echo -n $str | openssl dgst -sha1 -hmac $SECRET_KEY -binary)
    25 
    26 # 对加密串进行 Base64 编码
    27 sign=$(echo -n $sign$str | base64)
    28 
    29 # 移除多余的空格得到最终的鉴权签名
    30 sign=$(echo -n $sign | tr -d ' ')
    31 
    32 # 导出鉴权签名
    33 export AUTH_SIGN=$sign

    关于签名鉴权的详细介绍和生成方法可移步[https://cloud.tencent.com/document/product/460/6968]

    将签名导出为环境变量

    在终端中,生成签名并将签名导出为环境变量:

    source gen-sign.sh

    可以通过以下命令来验证签名是否已正常导出(该命令可多次执行,每次执行都会生成新的签名并将签名导出为环境变量,签名应该是一串经过 Base64 的字符串):

    echo $AUTH_SIGN

    体验智能鉴黄

    准备鉴黄脚本

    仍旧在目录 /data/try-pi 下创建 detect-porn.sh 文件,然后在文件中贴入以下脚本:

    示例代码:/data/try-pi/detect-porn.sh
     1 #!/bin/bash
     2 
     3 #########################################
     4 # 鉴黄脚本
     5 # @see https://cloud.tencent.com/document/product/460/6900
     6 #########################################
     7 
     8 # 图片鉴黄 API 地址
     9 END_POINT='https://service.image.myqcloud.com/detection/porn_detect'
    10 
    11 # 使用帮助
    12 function usage() {
    13   echo ""
    14   echo "-h --help"
    15   echo "-r --remote-image=网络图片地址"
    16   echo "-l --local-image=本地图片地址"
    17   echo ""
    18 }
    19 
    20 # 对网络图片进行鉴黄
    21 function detect_remote() {
    22   remote_image=$1
    23 
    24   curl -X POST 
    25        -H "Content-Type: application/json" 
    26        -H "Authorization: $AUTH_SIGN" 
    27        -d '{"appid":'$APP_ID',"bucket":"'$BUCKET_NAME'","url_list":["'$remote_image'"]}' 
    28        --silent 
    29        $END_POINT
    30 }
    31 
    32 # 对本地图片进行鉴黄
    33 function detect_local() {
    34   local_image=$1

    在终端中敲入以下命令查看鉴黄脚本使用说明(鉴黄脚本是对万象优图图片鉴黄 API 接口的实践。可以看到,我们的脚本支持对 网络图片 和 本地图片 进行鉴黄):

    bash detect-porn.sh -h

    对网络图片进行鉴黄

    在终端执行以下命令,可以看到对网络图片的鉴黄结果(输出结果应该是一段 JSON 字符串,点击这里可以查看输出结果各字段的含义):

    bash detect-porn.sh --remote-image='https://imgcache.qq.com/open_proj/proj_qcloud_v2/gateway/event/pc/ci-identify/css/img/demo/demo_8.jpg'

    对本地图片进行鉴黄

    在终端执行执行以下命令,将网络图片下载到云主机 /data/try-pi 目录下:

    wget https://imgcache.qq.com/open_proj/proj_qcloud_v2/gateway/event/pc/ci-identify/css/img/demo/demo_10.jpg -O /data/try-pi/demo.jpg

    下载完成后,右键刷新 /data/try-pi 目录,可以看到在该目录下新增了一个名为 demo.jpg 的图片,点击可预览该图片。

    接下来,在终端执行以下命令,可以看到对该图片的鉴黄结果:

    bash detect-porn.sh --local-image='/data/try-pi/demo.jpg'

    输出结果应该是一段 JSON 字符串,点击这里可以查看输出结果各字段的含义。

    当然,你也可以根据上述步骤,替换为自己准备的图片进行鉴黄体验。

    完成实验

    Well done!通过本实验,我们了解了如何使用图片鉴黄 API 接口(包括生成 API 密钥、创建优图 bucket、生成鉴权签名),以及如何使用接口对网络图片和本地图片进行鉴黄。

  • 相关阅读:
    K8s 使用 nfs-client-provisioner
    MySQL IF CASE 例子
    Nginx 限速
    Python 元组操作
    Python if, while,for,continue,break,三目运算符
    Centos7 安装 pyenv
    MySQL 查看大事务
    Tomcat 修改日志路径及日志分割
    游戏攻略 美少女万华镜5
    自建远程桌面过程 vnc + frp
  • 原文地址:https://www.cnblogs.com/jikexianfeng/p/8485085.html
Copyright © 2011-2022 走看看