用阿里云内容安全处理OSS的违禁图片

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 原文档,https://help.aliyun.com/document_detail/2400149.html 基于官方的文档做的一些拓展
  1. 1、登录函数计算控制台,选择服务地域,创建服务和函数。具体操作,请参见管理服务管理函数。创建函数时,选择使用内置运行时创建的方式,核心字段配置如下:
  • 基本设置区域,选择请求处理程序类型处理事件请求
  • 函数代码区域,根据实际业务选择运行环境,设置代码上传方式使用示例代码方式,并选择对象存储OSS触发函数
  • 触发器配置区域,选择触发器类型对象存储OSS,指定Bucket名称osstest-20文件前缀img文件后缀png触发事件选择oss:ObjectCreated:PutObjectoss:ObjectCreated:PostObject事件,角色名称AliyunOSSEventNotificationRole
    首次创建函数时,您可以根据页面提示授予事件源访问函数计算权限。更多内容,请参见授予事件源访问函数计算的权限
    关于OSS触发器事件的详细信息,请参见OSS触发器概述

2、通过函数调用内容安全图片审核增强版服务。


官方提供了一种通过函数计算来触发内容安全增量扫描的方案,但是该方案没有处理文件的示例,业务方的需求是把检测到的违规文件直接禁止公共读,需要置为PRIVATE权限,加完处理后的示例代码如下:

# -*- coding: utf-8 -*-importjson, uuidimportconfigparserfromaliyunsdkcore.clientimportAcsClientfromaliyunsdkcore.requestimportCommonRequestimportoss2# 需要自行根据检测内容确定好bucket路径及object名称defoss_acl_private(bucket_name, object_name):
auth=oss2.Auth("accessKeyId", "accessSecret")
bucket=oss2.Bucket(auth, 'https://oss-cn-shanghai.aliyuncs.com', bucket_name)
# yourObjectName填写Object完整路径,完整路径中不能包含Bucket名称。bucket.put_object_acl(object_name, oss2.OBJECT_ACL_PRIVATE)
defhandler(event, context):
config=configparser.ConfigParser()
config.read("config.ini", encoding="GB18030")
# AccessKey ID和AccessKey Secret写入的配置文件。evt=json.loads(event)
evt=evt['events'][0]
bucket_name=evt['oss']['bucket']['name']
object_name=evt['oss']['object']['key']
ossRegionId=evt['region']
client=AcsClient(config.get("config", "accessKeyId"), config.get("config", "accessSecret"), 'cn-shanghai')
request=CommonRequest()
request.set_read_timeout(6000)  # 读超时时间配置request.set_connect_timeout(3000)  # 连接超时时间配置request.set_accept_format('json')
request.set_method('POST')
request.set_protocol_type('https')  # https | httprequest.set_domain('green-cip.cn-shanghai.aliyuncs.com')
request.set_version('2022-03-02')
request.set_action_name('ImageModeration')
request.add_query_param("Service", "baselineCheck")
request.add_query_param("ServiceParameters",
                            {
# 'imageUrl': 'https://www.aliyun.com/1.jpg','dataId': str(uuid.uuid4()),
'ossObjectName': object_name,
'ossRegionId': ossRegionId,
'ossBucketName': bucket_name,
                            })
response=client.do_action_with_exception(request)
# print(str(response, encoding='utf-8'))response_json=json.loads(response)
ifresponse_json.get("Code") ==200:
foriteminresponse_json.get("Data", {}).get("Result", []):
print('item', item)
ifitem["Label"] =="nonLabel":
print("nonLabel 无命中标签")
elif"pornographic"initem["Label"] andint(item["Confidence"]) >80:
print("疑似含有色情内容")
# oss_acl_private(bucket_name, object_name)elif"political"initem["Label"] andint(item["Confidence"]) >80:
print("疑似含有涉政内容")
# oss_acl_private(bucket_name, object_name)elif"violent"initem["Label"] andint(item["Confidence"]) >80:
print("疑似含有暴恐内容")
# oss_acl_private(bucket_name, object_name)elif"fraud"initem["Label"] andint(item["Confidence"]) >80:
print("疑似含有风险内容")
else:
print("请求失败,错误码:", response_json.get("Code"))


相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
2月前
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1455 4
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
5月前
|
机器学习/深度学习 人工智能 专有云
人工智能平台PAI使用问题之怎么将DLC的数据写入到另一个阿里云主账号的OSS中
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
1月前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
2月前
|
存储 人工智能 缓存
AI助理直击要害,从繁复中提炼精华——使用CDN加速访问OSS存储的图片
本案例介绍如何利用AI助理快速实现OSS存储的图片接入CDN,以加速图片访问。通过AI助理提炼关键操作步骤,避免在复杂文档中寻找解决方案。主要步骤包括开通CDN、添加加速域名、配置CNAME等。实测显示,接入CDN后图片加载时间显著缩短,验证了加速效果。此方法大幅提高了操作效率,降低了学习成本。
5476 16
|
2月前
|
算法 Java Linux
java制作海报四:java BufferedImage 转 InputStream 上传至OSS。png 图片合成到模板(另一个图片)上时,透明部分变成了黑色
这篇文章主要介绍了如何将Java中的BufferedImage对象转换为InputStream以上传至OSS,并解决了png图片合成时透明部分变黑的问题。
120 1
|
4月前
|
存储 JavaScript 前端开发
Vue中实现图片上传,上传后的图片回显,存储图片到服务器 【使用对象存储OSS】
这篇文章介绍了在Vue中实现图片上传到阿里云OSS对象存储服务的完整流程,包括服务端签名直传的前提知识、后端设置、前端组件封装以及图片上传和回显的效果展示。
|
4月前
|
存储 机器学习/深度学习 弹性计算
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决
|
5月前
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
存储 运维 安全
阿里云OSS的优势
【7月更文挑战第19天】阿里云OSS的优势
242 2
|
5月前
|
存储 API 开发工具
阿里云OSS
【7月更文挑战第19天】阿里云OSS
207 1

相关产品

  • 对象存储