Swift SDK
阿里云API调试工具OpenAPI Explore提供OpenAPI文档、API调试和SDK示例,帮助您快速入门API开发。本文介绍如何安装和快速使用智能媒体管理Swift SDK。
前提条件
已安装Swift3.0以上环境。
- 已创建并获取AccessKey。具体操作,请参见创建AccessKey。
- 已开通OSS服务、创建存储空间并上传文件到存储空间。具体操作,请参见上传文件。
- 已开通智能媒体管理服务。具体操作,请参见开通产品。
- 已调用CreateProject - 创建项目接口创建项目。
说明
- 您也可以通过智能媒体管理控制台创建项目。具体操作,请参见创建项目。
- 您可以调用ListProjects - 列出所有项目信息的列表接口列出指定地域下已创建的所有项目信息。
安装
添加依赖到Package.swift文件中。
import PackageDescription
let package = Package(
name: "immdemo",
dependencies: [
.package(url: "https://github.com/alibabacloud-sdk-swift/imm-20200930/", from: "2.1.0")
]
)
使用方法
如下以在华东1(杭州)地域中检测图片中的人脸及人脸信息为例介绍如何使用智能媒体管理Swift SDK。
说明
复制使用如下示例代码时请将访问域名换成您的IMM项目所在Region的域名,并且IMM项目和OSS文件Region需要保持一致。
#!/usr/bin/env xcrun swift
import Cocoa
import Foundation
import Tea
import AlibabacloudImm20200930
import AlibabacloudOpenApi
import TeaUtils
open class Client {
public static func createClient(_ accessKeyId: String?, _ accessKeySecret: String?) throws -> AlibabacloudImm20200930.Client {
var config: AlibabacloudOpenApi.Config = AlibabacloudOpenApi.Config([
"accessKeyId": accessKeyId as! String,
"accessKeySecret": accessKeySecret as! String
])
// 填写项目所在地域的IMM服务域名。
config.endpoint = "imm.cn-hangzhou.aliyuncs.com"
return AlibabacloudImm20200930.Client(config)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public static func main(_ args: [String]?) async throws -> Void {
// 填写RAM用户的AccessKey ID 和 AccessKey Secret。
var client: AlibabacloudImm20200930.Client = try Client.createClient("accessKeyId", "accessKeySecret")
var detectImageFacesRequest: AlibabacloudImm20200930.DetectImageFacesRequest = AlibabacloudImm20200930.DetectImageFacesRequest([
// IMM项目名称。
"projectName": "immtest",
// 待检测图片的OSS URI。
"sourceURI": "oss://test-bucket/test-object.jpg"
])
var runtime: TeaUtils.RuntimeOptions = TeaUtils.RuntimeOptions([:])
do {
// 发起请求。
try await client.detectImageFacesWithOptions(detectImageFacesRequest as! AlibabacloudImm20200930.DetectImageFacesRequest, runtime as! TeaUtils.RuntimeOptions)
}
catch {
if error is Tea.TeaError {
try TeaUtils.Client.assertAsString(error.message)
} else {
throw error
}
}
}
}
Client.main(CommandLine.arguments)