系统要求: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
 #!/bin/bash

 #########################################
# 基础配置
######################################### # 腾讯云账号 APP ID
# 在如下单引号内填入你的 APPID
export APP_ID='' # 云 API 公钥
# 在如单引号内填入你的 SecretID
export SECRET_ID='' # 云 API 密钥
# 在如下单引号内填入你的 SecretKey
export SECRET_KEY='' # 优图 bucket 名称
# 如果你创建的 bucket 名称不叫 trial,替换为自己创建的即可
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
 #!/bin/bash

 #########################################
# 生成多次有效的鉴权签名(有效期 天)
# @see https://cloud.tencent.com/document/product/460/6968
######################################### # 当前时间戳(秒)
current_time=$(date +%s) # 到期时间戳(秒)
expire_time=$(($current_time + * * * )) # 随机串,无符号 进制整数(不大于 位)
rand='' # 历史遗留字段,写死为
user_id='' # 拼接签名串
str="a=$APP_ID&b=$BUCKET_NAME&k=$SECRET_ID&e=$expire_time&t=$current_time&r=$rand&u=$user_id"; # 使用 HMAC-SHA1 算法对签名串加密
sign=$(echo -n $str | openssl dgst -sha1 -hmac $SECRET_KEY -binary) # 对加密串进行 Base64 编码
sign=$(echo -n $sign$str | base64) # 移除多余的空格得到最终的鉴权签名
sign=$(echo -n $sign | tr -d ' ') # 导出鉴权签名
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
 #!/bin/bash

 #########################################
# 鉴黄脚本
# @see https://cloud.tencent.com/document/product/460/6900
######################################### # 图片鉴黄 API 地址
END_POINT='https://service.image.myqcloud.com/detection/porn_detect' # 使用帮助
function usage() {
echo ""
echo "-h --help"
echo "-r --remote-image=网络图片地址"
echo "-l --local-image=本地图片地址"
echo ""
} # 对网络图片进行鉴黄
function detect_remote() {
remote_image=$ curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: $AUTH_SIGN" \
-d '{"appid":'$APP_ID',"bucket":"'$BUCKET_NAME'","url_list":["'$remote_image'"]}' \
--silent \
$END_POINT
} # 对本地图片进行鉴黄
function detect_local() {
local_image=$

在终端中敲入以下命令查看鉴黄脚本使用说明(鉴黄脚本是对万象优图图片鉴黄 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、生成鉴权签名),以及如何使用接口对网络图片和本地图片进行鉴黄。

基于CentOS体验万象优图鉴黄服务的更多相关文章

  1. 基于Centos体验自然语言处理 by PHP SDK

    系统要求:CentOS 7.2 64 位操作系统 准备工作 获取 SecretId 和 SecretKey1 前往 密钥管理 页面获取你的 SecretId 和 SecretKey 信息,这些信息将会 ...

  2. 基于Centos体验自然语言处理 by Python SDK

    系统要求: CentOS 7.2 64 位操作系统 准备工作 获取 SecretId 和 SecretKey 前往 密钥管理 页面获取你的 SecretId 和 SecretKey 信息,这些信息将会 ...

  3. 腾讯云万象优图每个账户提供50G的图片存储(支持黄图检测)

    文章由GIT博客迁移过来 程序下载地址(源码也在):点我下载 设计说明 10月20号晚上,准备写这么一个程序. 腾讯云万象优图每个账户提供50G的图片存储(支持黄图检测) 可以在截图之后,直接点击上传 ...

  4. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.10.配置用户NTF服务

    2.10.配置用户NTF服务 2.10.1.配置节点RAC1 1) [root@linuxrac1 sysconfig]#sed -i 's/OPTIONS/#OPTIONS/g' /etc/sysc ...

  5. 基于centos搭建微信小程序服务,配置及数据库等

    基于centos搭建小程序, ps:请提前20天准备将域名备案,申请ssl证书 实验上机地址:https://cloud.tencent.com/developer/labs/lab/10004 准备 ...

  6. python基于万象优图识别图片中的中文

    最近一直在研究光学字符识别,即OCR.最开始在谷爹那里了解到了开源的Tesseract,可以拿来识别简单的英文和数字.但是识别中文的准确率并不高. 然后从Tesseract到Tesseract.js, ...

  7. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.7. 配置资源与参数

    2.7.配置资源与参数 2.7.1. 修改主机名称 [root@linuxrac1 ~]# cd /etc/sysconfig [root@linuxrac1 sysconfig]# vi netwo ...

  8. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.6. 安装Oracle所依赖的必要包

    2.6. 安装Oracle所依赖的必要包 2.6.1. 检查Oracle所依赖的必要rpm包 [root@localhost /]#rpm -q binutils compat-libstdc elf ...

  9. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.5. 配置网络

    2.5. 配置网络 2.5.1. 配置网络 Oracle Rac数据库涉及到公用网络和私有网络,因此要做网络划分和IP地址规划,下表列出了要安装的RAC数据库对应的IP地址.主机名以及网络连接类型: ...

随机推荐

  1. BZOJ2287【POJ Challenge】消失之物

    题解: 1.以前见过类似的,可以cdq分治 当l=r时就是还有一个剩余 这样时间是nmlogn的 空间是mlogn 2.首先我们可以dp出表示出j的方案数 令g[i][j]表示不能选i,表示出j的方案 ...

  2. 使用yum时报错 This system is not registered to Red Hat Subscription Management

    错误原因:使用redhat的yum源是需要注册付费的. 1.卸载RedHat自带的yum包 查看已安装的yum rpm -qa|grep yum #卸载已安装的yum rpm -qa | grep y ...

  3. Ubuntu 开机自启动SSH+远程关机

    Ubuntu 开机自启动SSH+远程关机   安装SSH 如何通过ssh远程登录linux系统 开机自启动ssh sudo gedit /etc/rc.locl # 输入密码 # 添加下面命令于 ex ...

  4. [洛谷P2258][NOIP2014PJ]子矩阵(dfs)(dp)

    NOIP 2014普及组 T4(话说一道PJ组的题就把我卡了一个多小时诶) 这道题在我看第一次的时候是没有意识到这是一道DP题的,然后就摁着DFS敲了好长时间,结果敲了一个TLE 这是DP!!! 下面 ...

  5. 三篇文章带你极速入门php(二)之迅速搭建php环境

    前言 今天讲一下php在windows,mac,linux上的集成环境搭建,目标是简单快速,环境这个事得对号入座,windows用phpstudy,mac用mamp,linux用lnmp一键安装,直接 ...

  6. 使用OutputStream向屏幕上输出内容

    使用OutputStream向屏幕上输出内容 /** * 使用OutputStream向屏幕上输出内容 */ import java.io.*; class hello { public static ...

  7. 使用starUML一步一步画顺序图

    顺序图:是UML中能表现出一个过程中各个详细步骤的模型图,过程可以理解为一个功能的执行过程. 下面我们以一个简单的影院管理系统中售票功能为例来一步一步完成顺序图的构建. 建模工具:starUML 版本 ...

  8. SQL HAVING 子句使用

    HAVING 对由sum或其它集合函数运算结果的输出进行限制. 比如,我们可能只希望看到Store_Information数据表中销售总额超过1500美圆的商店的信息,这时我们就需要使用HAVING从 ...

  9. BZOJ.4727.[POI2017]Turysta(哈密顿路径/回路 竞赛图)

    题目链接 \(Description\) 给出一个n个点的有向图,任意两个点之间有且仅一条有向边.对于每个点v,求出从v出发的一条经过点数最多,且没有重复经过同一个点一次以上的简单路径. n<= ...

  10. Python图形编程探索系列-04-网上图片与标签组件的结合

    跳转到自己的博客 任务设定 任务:从网上找到一张图片,然后将其显示在标签上? 网上图片网站:http://pic.58pic.com/58pic/17/56/38/52w58PICtER_1024.j ...