使用python,基于aksk,调用推理服务

举报
星月菩提 发表于 2021/01/25 20:11:49 2021/01/25
【摘要】 使用python,基于aksk,调用推理服务

如果输入数据是json字符串

请直接参考

https://support.huaweicloud.com/devg-apig/apig-dev-180307016.html


如果输入的数据是一张图片,下面的例子程序假设图片保存在image/rose1.jpg中

首先从下面链接下载apig sdk

https://obs.cn-north-1.myhuaweicloud.com/apig-sdk/ApiGateway-python-sdk.zip

解压后对于main.py进行如下修改


修改后的全量代码如下

# coding=utf-8
import requests
from apig_sdk import signer

if __name__ == '__main__':
    sig = signer.Signer()
    sig.Key = "<YOUR-AK>"
    sig.Secret = "<YOUR-SK>"
    data_type = 'images'
    input_img_path = 'image/rose1.jpg'
    predict_file = {data_type: open(input_img_path, 'rb')}
    predict_body, content_type = requests.models.RequestEncodingMixin._encode_files(predict_file, {})
    predict_file[data_type].close()
    r = signer.HttpRequest("POST",
                           "<YOUR-INFER-URL>",
                           {"x-stage": "RELEASE", 'content-type': content_type},
                           predict_body)
    sig.Sign(r)
    print(r.headers["X-Sdk-Date"])
    print(r.headers["Authorization"])
    resp = requests.request(r.method, r.scheme + "://" + r.host + r.uri, headers=r.headers, data=r.body, verify=False)
    print(resp.status_code, resp.reason)

    print(resp.content)


对于apig_sdk目录下面的signer.py进行如下修改

        if sys.version_info.major >= 3 and isinstance(body, str):
            self.body = body.encode("utf-8")
        else:
            self.body = body


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。