C#(不推薦)
本文介紹了如何使用阿里云視覺智能開放平臺(tái)的.NET SDK,具體包括SDK的安裝方法以及SDK代碼示例。
阿里云視覺智能開放平臺(tái)各類目視覺AI能力SDK接入、接口使用或問(wèn)題咨詢等,請(qǐng)通過(guò)釘釘群(23109592)加入阿里云視覺智能開放平臺(tái)咨詢?nèi)郝?lián)系我們。
本文檔介紹舊版C# SDK,最低要求net framework 4.5或.Net Core 2.0,推薦使用新版C# SDK。
準(zhǔn)備工作
在安裝和使用阿里云SDK前,確保您已經(jīng)注冊(cè)阿里云賬號(hào)并生成訪問(wèn)密鑰(AccessKey)。詳情請(qǐng)參見創(chuàng)建AccessKey。
安裝.NET SDK核心庫(kù)。
(可選)如果您的代碼中引用了某個(gè)算法的類,請(qǐng)先安裝對(duì)應(yīng)算法類目的SDK。此處以人臉人體服務(wù)為例。
通過(guò)NuGet方式安裝。
在Visual Studio中打開已有的項(xiàng)目,選擇
。搜索aliyun-net-sdk-facebody,在結(jié)果中找到aliyun-net-sdk-facebody,選擇最新版本,單擊安裝。
通過(guò).NET CLI方式安裝。
執(zhí)行
dotnet add package aliyun-net-sdk-facebody
安裝人臉人體服務(wù)的.NET SDK。
具體服務(wù)的SDK名稱如下:
AI類目
Nuget鏈接
Github鏈接
人臉人體
文字識(shí)別
商品理解
內(nèi)容審核
圖像識(shí)別
圖像生產(chǎn)
分割摳圖
目標(biāo)檢測(cè)
視覺搜索
圖像分析處理
視頻生產(chǎn)
視頻理解
視頻分割
配置環(huán)境變量
配置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
阿里云賬號(hào)AccessKey擁有所有API的訪問(wèn)權(quán)限,建議您使用RAM用戶進(jìn)行API訪問(wèn)或日常運(yùn)維,具體操作,請(qǐng)參見創(chuàng)建RAM用戶。
請(qǐng)不要將AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導(dǎo)致AccessKey泄露,威脅您賬號(hào)下所有資源的安全。
Linux和macOS系統(tǒng)配置方法
在IntelliJ IDEA中打開終端Terminal。
執(zhí)行以下命令,配置環(huán)境變量。
<access_key_id>
需替換為您RAM用戶的AccessKey ID,<access_key_secret>
替換為您RAM用戶的AccessKey Secret。如果后續(xù)需要進(jìn)行更多權(quán)限相關(guān)的配置,具體操作請(qǐng)參見使用RAM Policy控制訪問(wèn)權(quán)限。export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id> export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>
Windows系統(tǒng)配置方法
新建環(huán)境變量文件,添加環(huán)境變量
ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
,并寫入已準(zhǔn)備好的AccessKey ID和AccessKey Secret。然后重啟Windows系統(tǒng)。本操作以Windows 10為例進(jìn)行說(shuō)明。打開文件資源管理器,在此電腦上右鍵單擊屬性。
在右側(cè)導(dǎo)航欄,單擊高級(jí)系統(tǒng)配置。
在系統(tǒng)屬性對(duì)話框的高級(jí)頁(yè)簽下,單擊環(huán)境變量。
在環(huán)境變量對(duì)話框中,單擊新建(W)。
在彈出的新建系統(tǒng)變量對(duì)話框中,添加環(huán)境變量
ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
,并寫入已準(zhǔn)備好的AccessKey ID和AccessKey Secret。重啟Windows系統(tǒng),使配置生效。
代碼示例
本文以RecognizeBankCard為例進(jìn)行說(shuō)明,SDK示例如下。該方式目前只支持同地域下OSS文件,其他場(chǎng)景請(qǐng)使用新版C# SDK。
using System;
using System.Collections.Generic;
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Exceptions;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Core.Auth;
using Aliyun.Acs.ocr.Model.V20191230;
namespace AlibabaCloud.SDK.Sample
{
class Program
{
static void Main(string[] args)
{
// 創(chuàng)建AccessKey ID和AccessKey Secret,請(qǐng)參考http://bestwisewords.com/document_detail/175144.html。
// 如果您用的是RAM用戶的AccessKey,還需要為RAM用戶授予權(quán)限AliyunVIAPIFullAccess,請(qǐng)參考http://bestwisewords.com/document_detail/145025.html。
// 從環(huán)境變量讀取配置的AccessKey ID和AccessKey Secret。運(yùn)行示例前必須先配置環(huán)境變量。
AlibabaCloudCredentialsProvider provider = new AccessKeyCredentialProvider(
Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
/* use STS Token
AlibabaCloudCredentialsProvider provider = new StsCredentialProvider(
Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
Environment.GetEnvironmentVariable("ALIBABA_CLOUD_SECURITY_TOKEN"));
*/
IClientProfile profile = DefaultProfile.GetProfile("cn-shanghai");
DefaultAcsClient client = new DefaultAcsClient(profile, provider);
var request = new RecognizeBankCardRequest();
try {
var response = client.GetAcsResponse(request);
Console.WriteLine(System.Text.Encoding.Default.GetString(response.HttpResponse.Content));
}
catch (ServerException e)
{
Console.WriteLine(e);
}
catch (ClientException e)
{
Console.WriteLine(e);
}
}
}
}