python3调用阿里云openapi脚本 - 生产环境

这篇具有很好参考价值的文章主要介绍了python3调用阿里云openapi脚本 - 生产环境。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


场景描述

下文内使用的脚本,主要应用场景为:

在日常使用阿里云服务时,获取数据时,一般都需要调用openapi,下面的脚本为调用阿里云直播接口的脚本,如大家并非使用直播产品的接口,需做以下准备:文章来源地址https://www.toymoban.com/news/detail-832460.html

  1. 查询接口版本,示例:‘Version’:‘2016-11-01’。
  2. 阿里云AK的RAM权限。
  3. 其他产品的地址,示例:http://live.aliyuncs.com为直播产品地址。
  4. 阿里云的openapi一般情况下同时支持GET和POST请求,但是也有例外的,需注意请求方式。
  5. action_json 内的所有参数需要更改为openapi调用时的参数,此接口只有两个参数,如有其他参数,需增加一起输入。

脚本如下

# -*- coding: utf-8 -*-
import base64
import hmac
import json
import time
import sys
import requests
import urllib.parse

from pprint import pprint
from datetime import datetime,timedelta
from hashlib import sha1

class openapi_debug():
    def __init__(self,HttpMethod:str,action_json:dict):
        self.base_json = {
            'Format':'JSON',
            'Version':'2016-11-01',#接口版本
            'SignatureMethod':'HMAC-SHA1',
            'AccessKeyId':'xxxx',#AK
            'SignatureNonce': str(int(time.time()*10000)),
            'SignatureVersion': '1.0'
            }
        self.HttpMethod = HttpMethod
        self.access_key_secret = 'xxxx'#secret
        self.base_json.update(action_json)

    def get_utc_time(self):
        now_time = datetime.now()
        utc_time = now_time - timedelta(hours=8)  # UTC只是比北京时间提前了8个小时
        utc_time = utc_time.strftime("%Y-%m-%dT%H:%M:%SZ")
        return utc_time

    def percentEncode(self,str_v):
        res = urllib.parse.quote(str(str_v).encode('utf8').decode(sys.stdin.encoding), '')
        res = res.replace('+', '%20')
        res = res.replace('*', '%2A')
        res = res.replace('%7E', '~')
        return res

    def get_all_param(self):
        Timestamp = self.get_utc_time()
        self.base_json['Timestamp'] = Timestamp
        sortedD = sorted(self.base_json.items(), key=lambda x: x[0])
        canstring = ''
        for k,v in sortedD:
            canstring += '&' + self.percentEncode(k) + '=' + self.percentEncode(v)
        stringToSign = self.HttpMethod+ '&%2F&' + self.percentEncode(canstring[1:])
        h = hmac.new((self.access_key_secret+'&').encode('utf-8'), stringToSign.encode('utf-8'), sha1)
        signature = base64.encodebytes(h.digest()).strip()
        self.base_json['Signature'] = str(signature,encoding='utf-8')
        return self.base_json

class action_debug():
    def __init__(self,HttpMethod,base_json):
        self.base_json = base_json
        self.HttpMethod = HttpMethod

    def action_run(self):
        # 这里需要注意下下面的url内的地址,这里是直播调用,所以是live.aliyuncs.com,如果是其他产品,需要更改地址
        url = 'http://live.aliyuncs.com/?' + urllib.parse.urlencode(self.base_json)
        if self.HttpMethod == 'GET':
            res = requests.get(url=url, json=self.base_json)
            pprint(json.loads(res.text))
        elif self.HttpMethod == 'POST':
            res = requests.post(url=url,json=self.base_json)
            pprint(json.loads(res.text))

if __name__ == '__main__':
    # action_json 内的所有参数需要更改为openapi调用时的参数,此接口只有两个参数,如有其他参数,需增加一起输入。
    action_json = {
        'Action': 'xxxx', # 接口名
        'StartTime': str(int(time.time())),
        'EndTime': str(int(time.time() + 3600)),
    HttpMethod = 'POST' # GET/POST
    base_debug = openapi_debug(HttpMethod,action_json)
    base_json = base_debug.get_all_param()
    action_debug = action_debug(HttpMethod,base_json)
    action_debug.action_run()

到了这里,关于python3调用阿里云openapi脚本 - 生产环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 脚本:PDF文件批量转换成图片(python3)

    语言:python 3 用法:选择PDF文件所在的目录,点击 确定 后,自动将该目录下的所有PDF转换成单个图片,图片名称为: pdf文件名.page_序号.jpg 如运行中报错,需要 自行根据报错内容安装缺失的库 例如: 提供两种源码 第一种是在代码中手动添加pdf所在目录 第二种是点击运行后

    2024年02月11日
    浏览(55)
  • sorna python3 调用,python 获取sonarqube数据

    1.sonarqube是一款代码分析的工具,通过soanrScanner扫描后的数据传递给sonarqube进行分析 2.sonarqube社区版没有对c++类代码的分析,但是可以找到一个开源的包,安装即可,扫描的话可以使用cppcheck来进行扫描 安装python对于sonarqube的api包:python-sonarqube-api 建立sonarqube连接 from sonarqu

    2024年02月04日
    浏览(30)
  • T1级,生产环境事故—Shell脚本一键备份K8s的YAML文件

    大家好,我叫 秋意零 。 最近对公司进行日常运维工作时,出现了一个 T1 级别事故 。导致公司的“酒云网”APP的无法使用。我和我领导一起搞了一个多小时, 业务也停了一个多小时 。 起因是:我的部门直系领导,叫我**删除一个 Deployemnt 资源(node-api-gateway)**说该资源不用

    2024年04月27日
    浏览(42)
  • 手把手教你快速在生产环境搭建Doris集群附集群启停管理脚本

    组件分布规划 节点 node4 node5 node6 node7 node8 Node9 Node10 Node11 服务 FE(follower) BE FE(follower) BE FE(follower) BE FE(observer) BE BE Broker BE Broker BE BE Ip 192.168.22.34 192.168.22.35 192.168.22.36 192.168.22.37 192.168.22.20 192.168.22.16 192.168.22.17 192.168.22.18 根据自己集群的软硬件配置,选择合适的版本

    2024年02月02日
    浏览(53)
  • Windows 下 bat 脚本调用 Git bash 环境 sh 脚本

    D:InstallGit start.sh 脚本 双击 start.bat 我们下期见,拜拜!

    2024年04月25日
    浏览(49)
  • OpenApi接口的一次调用经历(附代码)

    去弄一个api_key:https://platform.openai.com/account/api-keys   先看所有能用的模型: 返回: babbage davinci text-davinci-edit-001 babbage-code-search-code text-similarity-babbage-001 code-davinci-edit-001 text-davinci-001 ada curie-instruct-beta babbage-code-search-text babbage-similarity whisper-1 code-search-babbage-text-001 text-curie-

    2024年02月12日
    浏览(50)
  • ubuntu 虚拟环境安装,创建python3.5和python3.8虚拟环境

    新的ubuntu20.0.4笔记本上自带点python是python3.8版本的,由于开发需要用到python3.5,一开始想把默认环境配置成python3.5算了。结果改了默认配置版本之后,坏了坏了,开机就报错,直接就进不了桌面界面了。所以,ubtuntu环境,要不是非常非常确定可以改版本,那就 千万不要改系

    2024年01月19日
    浏览(67)
  • Python3 环境搭建

    x `本章节我们将向大家介绍如何在本地搭建 Python3 开发环境。 Python3 可应用于多平台包括 Windows、Linux 和 Mac OS X。 Unix (Solaris, Linux, FreeBSD, AIX, HP/UX, SunOS, IRIX, 等等。) Win 9x/NT/2000 Macintosh (Intel, PPC, 68K) OS/2 DOS (多个DOS版本) PalmOS Nokia 移动手机 Windows CE Acorn/RISC OS BeOS Amiga VMS/OpenVMS

    2024年02月10日
    浏览(38)
  • Python3(一):环境配置

    因为生产项目需要一些监控告警,并且要尽量在不修改项目代码的前提下,所以选择了Python写一些告警脚本。之前一直做Java相关开发,所以趁此机会学习一下Python,毕竟技多不压身😏。 本文主要介绍windows系统下Python的环境配置。 下载地址:python.org,选择对应的版本类型下

    2024年02月01日
    浏览(44)
  • python3写一个http接口服务(get, post),给别人调用6

    近年来异步web服务器比较火热,例如falcon/bottle/sanic/aiohttp,今天也来玩玩sanic。 Sanic是一个支持Python 3.7+的web服务器和web框架,速度很快。它允许使用Python 3.5中添加的async/await语法,无阻塞且快。 Sanic也符合ASGI,目标是提供一种简单的方法来建立和运行一个高性能的HTTP服务器

    2024年02月15日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包