C++ SDK

阿里云API调试工具OpenAPI Explore提供OpenAPI文档、API调试和SDK示例,帮助您快速入门API开发。本文介绍如何安装和快速使用智能媒体管理C++ SDK。

前提条件

  • 已安装C++11及以上版本的编译器、Visual Studio 2013及以上版本、GCC 4.8及以上版本、Clang 3.3及以上版本。

  • 已创建并获取AccessKey。具体操作,请参见创建AccessKey
  • 已开通OSS服务、创建存储空间并上传文件到存储空间。具体操作,请参见上传文件
  • 已开通智能媒体管理服务。具体操作,请参见开通产品
  • 已调用CreateProject - 创建项目接口创建项目。
    说明

安装SDK

重要

调用2020-09-30版本的API,需要使用2020-09-30版本的SDK。

下载SDK

git clone --branch 1.36.1260 https://github.com/aliyun/aliyun-openapi-cpp-sdk.git

安装SDK

Linux安装

  1. 安装CMake并通过CMake生成目标平台的构建脚本。

    安装CMake3.1及以上版本后,下载SDK源码包,通过CMake编译生成所需文件。编译命令如下:

    cd <path/to/aliyun-openapi-cpp-sdk>
    mkdir build
    cd build
    cmake ..
  2. 安装第三方库libcurl、OpenSSL。

    RedHat或Centos:

    yum -y install libcurl-devel openssl-devel

    Fedora:

    sudo dnf install libcurl-devel openssl-devel
  3. 安装SDK。

    make && make install

Windows安装

安装CMake并通过CMake生成目标平台的构建脚本。

安装CMake3.1及以上版本后,打开cmd进入SDK文件目录,创建build文件夹,运行cmake生成所需文件。

请以管理员身份运行VS开发人员命令提示符,在build目录文件下运行以下命令进行编译安装。

msbuild ALL_BUILD.vcxproj
msbuild INSTALL.vcxproj

使用方法

如下以在华东1(杭州)地域中检测图片中的人脸及人脸信息为例介绍如何使用智能媒体管理C++ SDK。

说明

复制使用如下示例代码时请将访问域名换成您的IMM项目所在Region的域名,并且IMM项目和OSS文件Region需要保持一致。

#include <cstdlib>
#include <iostream>
#include <alibabacloud/core/AlibabaCloud.h>
#include <imm/ImmClient.h>

using namespace std;
using namespace AlibabaCloud;
using namespace AlibabaCloud::Imm;
    
int main( int argc, char** argv )
{
    AlibabaCloud::InitializeSdk();
    // 填写项目所在地域ID。
    AlibabaCloud::ClientConfiguration configuration( "cn-hangzhou" );
    // 填写RAM用户的AccessKey ID 和 AccessKey Secret。
    AlibabaCloud::Credentials credential( "your_access_key_id", "your_access_key_secret" );

    ImmClient client( credential, configuration );

    Model::DetectImageFacesRequest request;
    // IMM Project名称。
    request.setProjectName("immtest");
    // 待检测的图片OSS URI。
    request.setSourceURI("oss://test-bucket/test-object.jpg");
    //发起请求。
    auto outcome = client.detectImageFaces( request );
    if ( !outcome.isSuccess() )
    {
        std::cout << outcome.error().errorCode() << std::endl;
        AlibabaCloud::ShutdownSdk();
        return(-1);
    }
    
    std::cout << "totalCount: " << outcome.result().getTotalCount() << std::endl;
    
    AlibabaCloud::ShutdownSdk();
    return 0;
}

阿里云首页 智能媒体管理 相关技术圈