OpenAPI集成示例

本文为您介绍使用OpenAPI创建智能媒体管理项目的完整示例。

查看OpenAPI文档

阅读API概览,选择可以创建智能媒体管理项目信息的OpenAPI:CreateProject - 创建项目。根据接口文档,了解调用该接口需要的参数及权限。

用户身份管理

身份

  • 使用阿里云账号(主账号)、RAM用户、RAM角色调用该接口,有关各种身份的差异请参见身份、凭据、授权。本案例使用RAM用户进行接口调用。登录RAM访问控制,创建一个仅允许API调用的RAM用户,记录AK信息,更多详情请参见创建RAM用户

授权

  1. 访问RAM用户列表,单击目标RAM用户操作列的添加权限

  2. 添加权限区域,选择AliyunIMMFullAccessAliyunSTSAssumeRoleAccess

    说明
  3. 单击确认新增授权,完成授权操作。

访问凭证

  • 临时访问凭证:对于需要高安全性的场景,例如临时授权应用访问OSS,建议使用临时访问凭证。临时访问凭证可以限制访问的有效期,从而减少访问凭证泄露的风险。此外,临时访问凭证支持权限控制,可以有效地避免权限过大的问题。更多信息,请参见配置访问凭证

  • 长期访问凭证:出于安全性考虑,不建议您使用长期访问凭证,建议您使用临时访问凭证。对于需要便利性的场景,长期访问凭证可以在较长时间内免除多次刷新的麻烦。建议每三个月更换一次长期访问凭证,以提高账号的安全性。当长期访问凭证泄露或者不再使用时,应该及时删除或者禁用相关的访问凭证,以免造成安全风险。更多信息,请参见配置访问凭证

获取长期凭证AK

  1. 在创建RAM用户时会默认生成一个AccessKey,可直接使用。

  2. 单击目标RAM用户的名称进入RAM用户详情页。在认证管理页签,单击创建AccessKey,详细步骤请参见创建AccessKey

获取STS 短期凭证

重要

只支持使用RAM用户(子账号)或RAM角色调用,不支持使用阿里云账号(主账号)调用。

  1. 创建RAM用户。

    具体操作,请参见创建RAM用户

  2. 为RAM用户授予 AliyunSTSAssumeRoleAccess权限。

    具体操作,请参见为RAM用户授权

  3. 使用RAM用户调用STS服务的AssumeRole接口获取STS临时访问凭证。

    具体操作,请参见AssumeRole

说明

STS Token方式调用可以保护账号AccessKey信息,相比AccessKey方式更具有隐私性。如果您需要多次临时访问IMM,您需要手动刷新STS Token

调用OpenAPI

本文使用Python语言SDK,为您介绍OpenAPI的调用方法。其他语言SDK的用法也类似。更多信息,请参见智能媒体管理SDK

准备Python环境

下载并安装Python 3

说明

查看Python版本方法:打开终端,输入python --version

配置 AK 环境变量

创建AccessKey后,您需要配置环境变量AccessKey ID和AccessKey Secret。

重要

阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。

在Linux和macOS系统环境变量中设置阿里云AccessKey

以设置环境变量ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET为例。变量名称可以根据实际情况进行替换,例如OSS_ACCESS_KEY_IDOSS_ACCESS_KEY_SECRET

通过export命令配置环境变量

重要

使用export命令配置的临时环境变量仅当前会话有效,当会话退出之后所设置的环境变量将会丢失。若需长期保留环境变量,可将export命令配置到对应操作系统的启动配置文件中。

  • 配置AccessKey ID并按回车。

    # 将<ACCESS_KEY_ID>替换为您自己的AccessKey ID。
    export ALIBABA_CLOUD_ACCESS_KEY_ID=<ACCESS_KEY_ID>
  • 配置AccessKey Secret并回车。

    # 将<ACCESS_KEY_SECRET>替换为您自己的AccessKey Secret。
    export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<ACCESS_KEY_SECRET>
  • 验证是否配置成功。

    执行echo $ALIBABA_CLOUD_ACCESS_KEY_ID命令,如果返回正确的AccessKey ID,则说明配置成功。

Windows系统配置方法

以设置环境变量ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET为例:

通过图形用户界面GUI

  • 操作步骤

    以下为Windows 10中通过图形用户界面设置环境变量的步骤。

    在桌面右键单击此电脑,选择属性>高级系统设置>环境变量>系统变量/用户变量>新建,完成以下配置:

    变量

    示例值

    AccessKey ID

    • 变量名:ALIBABA_CLOUD_ACCESS_KEY_ID

    • 变量值:LTAI4GDty8ab9W4Y1D****

    AccessKey Secret

    • 变量名:ALIBABA_CLOUD_ACCESS_KEY_SECRET

    • 变量值:IrVTNZNy5yQelTETg0cZML3TQn****

  • 测试设置是否成功

    单击开始(或快捷键:Win+R)> 运行(输入 cmd)> 确定(或按 Enter 键),打开命令提示符,执行echo %ALIBABA_CLOUD_ACCESS_KEY_ID%echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%命令。若返回正确的AccessKey,则说明配置成功。

通过命令行提示符CMD

  • 操作步骤

    以管理员身份打开命令提示符,并使用以下命令在系统中新增环境变量。

    setx ALIBABA_CLOUD_ACCESS_KEY_ID LTAI4GDty8ab9W4Y1D**** /M
    setx ALIBABA_CLOUD_ACCESS_KEY_SECRET IrVTNZNy5yQelTETg0cZML3TQn**** /M

    其中/M表示系统级环境变量,设置用户级环境变量时可以不携带该参数。

  • 测试设置是否成功

    单击开始(或快捷键:Win+R)> 运行(输入 cmd)> 确定(或按 Enter 键),打开命令提示符,执行echo %ALIBABA_CLOUD_ACCESS_KEY_ID%echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%命令。若返回正确的AccessKey,则说明配置成功。

通过Windows PowerShell

在PowerShell中,设置新的环境变量(对所有新会话都有效):

[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTAI4GDty8ab9W4Y1D****', [System.EnvironmentVariableTarget]::User)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'IrVTNZNy5yQelTETg0cZML3TQn****', [System.EnvironmentVariableTarget]::User)

为所有用户设置环境变量(需要管理员权限):

[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTAI4GDty8ab9W4Y1D****', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'IrVTNZNy5yQelTETg0cZML3TQn****', [System.EnvironmentVariableTarget]::Machine)

设置临时的环境变量(仅当前会话有效):

$env:ALIBABA_CLOUD_ACCESS_KEY_ID = "LTAI4GDty8ab9W4Y1D****"
$env:ALIBABA_CLOUD_ACCESS_KEY_SECRET = "IrVTNZNy5yQelTETg0cZML3TQn****"

在PowerShell中,执行Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_IDGet-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_SECRET命令。若返回正确的AccessKey,则说明配置成功。

配置 STS Token 环境变量

Mac OS X/Linux/Unix

export IMM_ACCESS_KEY_ID=<ALIBABA_CLOUD_ACCESS_KEY_ID>
export IMM_ACCESS_KEY_SECRET=<ALIBABA_CLOUD_ACCESS_KEY_SECRET>
export IMM_SESSION_TOKEN=<ALIBABA_CLOUD_SECURITY_TOKEN>

Windows

set IMM_ACCESS_KEY_ID <ALIBABA_CLOUD_ACCESS_KEY_ID>
set IMM_ACCESS_KEY_SECRET <ALIBABA_CLOUD_ACCESS_KEY_SECRET>
set IMM_SESSION_TOKEN <ALIBABA_CLOUD_SECURITY_TOKEN>

下载示例代码安装依赖


pip install alibabacloud_credentials

在参数配置页签,填写需要的参数信息,例如输入要创建项目的projectName。

pip install alibabacloud_tea_console

在本地解压示例代码包并进入alibabacloud_sample目录。

运行下载示例代码

在终端设备执行以下命令。

python sample.py

得到如下输出结果。

{
    "headers":{
        "date":"Thu, 10 Aug 2023 06:34:51 GMT",
        "content-type":"application/json;charset=utf-8",
        "content-length":"602",
        "connection":"keep-alive",
        "keep-alive":"timeout=25",
        "access-control-allow-origin":"*",
        "access-control-expose-headers":"*",
        "x-acs-request-id":"2C489857-69E6-5974-B963-A7DF99EFFF43",
        "x-acs-trace-id":"eccc35df82a086e7bb4f4fe778f****",
        "etag":"6HYADxT6iVDNgQUq+wGO****"
    },
    "statusCode":200,
    "body":{
        "Project":{
            "CreateTime":"2023-08-10T14:34:51.586696893+08:00",
            "DatasetCount":0,
            "DatasetMaxBindCount":10,
            "DatasetMaxEntityCount":10000000000,
            "DatasetMaxFileCount":100000000,
            "DatasetMaxRelationCount":100000000000,
            "DatasetMaxTotalFileSize":90000000000000000,
            "Description":"",
            "EngineConcurrency":200,
            "FileCount":0,
            "ProjectMaxDatasetCount":1000000000,
            "ProjectName":"testproject",
            "ProjectQueriesPerSecond":200,
            "ServiceRole":"AliyunIMMDefaultRole",
            "TemplateId":"Official:DefaultEmptyId",
            "TotalFileSize":0,
            "UpdateTime":"2023-08-10T14:34:51.586696977+08:00"
        },
        "RequestId":"2C489857-69E6-5974-B963-A7DF99EFFF43"
    }
}