前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iapp对接云函数上传图片

iapp对接云函数上传图片

原创
作者头像
用户8170640
修改2021-11-25 18:48:30
1.8K0
修改2021-11-25 18:48:30
举报
文章被收录于专栏:docs

iapp上传图片到腾讯云函数

原理

原理:使用iapp对图片进行Base64编码然后上传到腾讯云API网关触发云函数事件

iapp对图片进行base64处理

原理:使用httpbin.org对图片数据进行处理

iapp事件代码
代码语言:javascript
复制
t()
{
  s api = "http://httpbin.org/post"
  // 因为huf函数使用post请求所以要使用httpbin post链接
  s file = "/storage/emulated/0/Pictures/WeiXin/1.jpg"
  // 图片本地地址 如无法上传 使用%代替/storage/emulated/0/
  s type = "utf-8"
  // 编码
  huf(api, "" , file, type, e)
  syso(e)
}
返回结果
代码语言:javascript
复制
{
    "args": {},
    "data": "",
    "files": {
        "file": "data:image/jpeg;base64,图片数据"
    },
    "form": {},
    "headers": {
        "Accept-Encoding": "gzip",
        "Charset": "utf-8",
        "Content-Length": "121",
        "Content-Type": "multipart/form-data;boundary=******",
        "Host": "httpbin.org",
        "User-Agent": "",
        "X-Amzn-Trace-Id": "Root=1-6191e183-110116c866c95ea842fa6c2a"
    },
    "json": null,
    "origin": "IP地址",
    "url": "http://httpbin.org/post"
}

云函数接收数据

进入控制台新建云函数

选择python3.6

image.png
image.png
创建API网关触发

注意要不要勾选集成响应 否则下面的代码运行后会显示错误

image.png
image.png
云函数Python处理图片代码

这里的return没有使用集成响应的格式,如果勾选了集成响应会显示错误,集成响应的格式在官方文档的云函数API网关触发可以看到。

代码语言:javascript
复制
# -*- coding: utf8 -*-
import json
def main_handler(event, context):
    # 处理传入的数据
    try:
        body = event['body']
        data = json.loads(body)
        file = data['files']['file'] #文件
    except:
        return {
            "code":500,
            "msg":"文件为空"
        }
​
    # 判断是否图片base64数据
    try:
        img = re.sub(r'data:image/(jpeg|png|gif);base64,','',file)#去除文件类型
    except:
        return {
            "code":501,
            "msg":"这不是一张图片"
        }
    
    # 写入到图片
    try:
        imgdata = base64.b64decode(img)
        file_path  = '/tmp/test.jpg'
        fo = open(file_path,'wb')
        fo.write(imgdata)
        fo.close()
        # 图片保存成功 云函数可以操作/tmp目录
        # 这里执行你的逻辑
    except:
        return {
            "code":502,
            "msg":"服务器保存图片错误"
        }
获取API网关访问路径
image.png
image.png

iapp上传httpbin的回调数据到云函数

代码语言:javascript
复制
t()
{
  s api = "http://httpbin.org/post"
  s tapi ="https://iapi.1ove.icu/release/i-up-up"
  //api网关的地址(这是我的写的图床接口,大家可以使用)
  s file = "/storage/emulated/0/Pictures/WeiXin/1.jpg"
  //上传的文件
  s type = "utf-8"
  //上传到httpbin 传入 参数e
  huf(api, "" , file, type, e)
  //上传 参数e 到云函数
  hs(tapi,e,type,ee)
  //ee 结果
}
  
​

源码

下载

Blog:i.1ove.icu

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • iapp上传图片到腾讯云函数
    • 原理
      • iapp对图片进行base64处理
        • 云函数接收数据
          • iapp上传httpbin的回调数据到云函数
            • 源码
              • Blog:i.1ove.icu
              相关产品与服务
              云函数
              云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。云函数是实时文件处理和数据处理等场景下理想的计算平台。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档