本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

Java SDK

更新時間:2024-11-19 20:03

阿里雲API調試工具OpenAPI Explore提供OpenAPI文檔、API調試和SDK樣本,協助您快速入門API開發。本文介紹如何安裝和快速使用Intelligent Media ManagementJava SDK。

前提條件

安裝SDK

重要

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

使用Intelligent Media ManagementJava SDK的操作步驟請參見快速入門

訪問憑證

您可以選擇以下類型的訪問憑證。

  • 臨時訪問憑證:對於需要高安全性的情境,例如臨時授權應用訪問IMM,建議使用臨時訪問憑證。臨時訪問憑證可以限制訪問的有效期間,從而減少訪問憑證泄露的風險。此外,臨時訪問憑證支援許可權控制,可以有效地避免許可權過大的問題。

  • 長期訪問憑證:出於安全性考慮,不建議您使用長期訪問憑證,建議您使用臨時訪問憑證。對於需要便利性的情境,長期訪問憑證可以在較長時間內免除多次重新整理的麻煩。建議每三個月更換一次長期訪問憑證,以提高帳號的安全性。當長期訪問憑證泄露或者不再使用時,應該及時刪除或者禁用相關的訪問憑證,以免造成安全風險。

使用臨時訪問憑證

當您準備臨時使用JAVA SDK訪問IMM服務時,可以參考配置臨時訪問憑證

如下以在華東1(杭州)地區中檢測圖片中的人臉及人臉資訊為例,介紹如何使用臨時訪問憑證通過Intelligent Media ManagementJava SDK調用對應API。

說明

複製使用如下範例程式碼時請將訪問網域名稱換成您的IMM專案所在Region的網域名稱,並且IMM專案和OSS檔案Region需要保持一致。

package com.aliyun.sample;

import com.aliyun.imm20200930.Client;
import com.aliyun.imm20200930.models.DetectImageFacesRequest;
import com.aliyun.imm20200930.models.DetectImageFacesResponse;
import com.aliyun.sts20150401.models.AssumeRoleRequest;
import com.aliyun.sts20150401.models.AssumeRoleResponse;
import com.aliyun.sts20150401.models.AssumeRoleResponseBody;
import com.aliyun.teaopenapi.models.Config;

public class STS_Test {
    // 填寫專案名稱。請確保已建立該專案。
    static String projectName = "imm-java-sdk-doc-demo";
    // 填寫圖片OSS URI。
    static String sourceURI = "oss://your-bucket-name/your-path/your-image.jpg";
    // 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
    // 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
    // 本樣本通過從環境變數中讀取AccessKey,來實現API訪問的身分識別驗證。如何配置環境變數,請參見https://help.aliyun.com/document_detail/2361894.html。
    static String immAccessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
    static String immAccessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");

    public static void main(String[] args) throws Exception {
        Config stsConfig = new Config()
                .setAccessKeyId(immAccessKeyId)
                .setAccessKeySecret(immAccessKeySecret)
                .setEndpoint("sts-share.cn-hangzhou.aliyuncs.com");
        com.aliyun.sts20150401.Client stsClient = new com.aliyun.sts20150401.Client(stsConfig);
        AssumeRoleRequest assumeRoleRequest = new AssumeRoleRequest()
               .setRoleArn("acs:ram::125499367423****:role/STStokenTestRole/STSsessionName")
                .setRoleSessionName("immtest")
                .setDurationSeconds(3600L);
        AssumeRoleResponse assumeRoleResponse = stsClient.assumeRole(assumeRoleRequest);
       AssumeRoleResponseBody.AssumeRoleResponseBodyCredentials assumeRoleResponseBodyCredentials = assumeRoleResponse.body.credentials;

        Config immConfig = new Config();
        immConfig.setAccessKeyId(assumeRoleResponseBodyCredentials.getAccessKeyId());
        immConfig.setAccessKeySecret(assumeRoleResponseBodyCredentials.getAccessKeySecret());
        immConfig.setSecurityToken(assumeRoleResponseBodyCredentials.getSecurityToken());
        immConfig.setEndpoint("imm.cn-hangzhou.aliyuncs.com");
        com.aliyun.imm20200930.Client immClient = new com.aliyun.imm20200930.Client(immConfig);
        // 構造檢測圖片中的人臉及人臉資訊請求。
        DetectImageFacesRequest detectImageFacesRequest = new DetectImageFacesRequest();
        detectImageFacesRequest.setProjectName(STS_Test.projectName);
        detectImageFacesRequest.setSourceURI(STS_Test.sourceURI);
        // 發起請求。
        DetectImageFacesResponse detectImageFacesResponse = immClient.detectImageFaces(detectImageFacesRequest);
        // 列印響應結果Body資訊。
        System.out.println(detectImageFacesResponse.body.toMap());
    }
}

運行後輸出結果如下。

{
  "faces": [
    {
      "attractive": 0.9810000061988831,
      "beard": "none",
      "beardConfidence": 0.9990000128746033,
      "boundary": {
        "height": 320,
        "left": 217,
        "top": 169,
        "width": 226
      },
      "emotion": "happiness",
      "emotionConfidence": 1,
      "faceQuality": 0.9869999885559082,
      "figureClusterId": "figure-cluster-id-unavailable",
      "figureConfidence": 1,
      "figureId": "92b7ed67-6344-4410-b5ed-****",
      "figureType": "face",
      "glasses": "none",
      "glassesConfidence": 0.9990000128746033,
      "hat": "none",
      "hatConfidence": 1,
      "headPose": {
        "pitch": -17.742000579833984,
        "roll": 3.2850000858306885,
        "yaw": -0.7279999852180481
      },
      "mask": "none",
      "maskConfidence": 0.7559999823570251,
      "mouth": "open",
      "mouthConfidence": 1,
      "sharpness": 1,
      ...
    }
  ],
  "requestId": "5BE08720-554C-566F-A642-****"
}

使用長期訪問憑證

如下以在華東1(杭州)地區中檢測圖片中的人臉及人臉資訊為例,介紹如何使用長期訪問憑證通過Intelligent Media ManagementJava SDK調用對應API。

package com.aliyun.sample;

import com.aliyun.imm20200930.Client;
import com.aliyun.imm20200930.models.DetectImageFacesRequest;
import com.aliyun.imm20200930.models.DetectImageFacesResponse;
import com.aliyun.teaopenapi.models.Config;

public class Sample {

    // 填寫專案名稱。請確保已建立該專案。
    static String projectName = "imm-java-sdk-doc-demo";
    // 填寫圖片OSS URI。
    static String sourceURI = "oss://your-bucket-name/your-path/your-image.jpg";
    // 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
    // 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
    // 本樣本通過從環境變數中讀取AccessKey,來實現API訪問的身分識別驗證。如何配置環境變數,請參見https://help.aliyun.com/document_detail/2361894.html。
    static String immAccessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
    static String immAccessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");

    public static void main(String[] args) {
        Config config = new Config()
                .setRegionId("cn-hangzhou")                    // 填寫專案所在地區ID。
                .setAccessKeyId(immAccessKeyId)
                .setAccessKeySecret(immAccessKeySecret);
        Client client = null;
        try {
            client = new Client(config);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        // 構造檢測圖片中的人臉及人臉資訊請求。
        DetectImageFacesRequest detectImageFacesRequest = new DetectImageFacesRequest();
        detectImageFacesRequest.setProjectName(Sample.projectName);
        detectImageFacesRequest.setSourceURI(Sample.sourceURI);
        // 發起請求。
        DetectImageFacesResponse detectImageFacesResponse = null;
        try {
            detectImageFacesResponse = client.detectImageFaces(detectImageFacesRequest);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        // 列印響應結果Body資訊。
        System.out.println(detectImageFacesResponse.body.toMap());

    }
}

運行後輸出結果如下。

{
  "faces": [
    {
      "attractive": 0.9810000061988831,
      "beard": "none",
      "beardConfidence": 0.9990000128746033,
      "boundary": {
        "height": 320,
        "left": 217,
        "top": 169,
        "width": 226
      },
      "emotion": "happiness",
      "emotionConfidence": 1,
      "faceQuality": 0.9869999885559082,
      "figureClusterId": "figure-cluster-id-unavailable",
      "figureConfidence": 1,
      "figureId": "92b7ed67-6344-4410-b5ed-****",
      "figureType": "face",
      "glasses": "none",
      "glassesConfidence": 0.9990000128746033,
      "hat": "none",
      "hatConfidence": 1,
      "headPose": {
        "pitch": -17.742000579833984,
        "roll": 3.2850000858306885,
        "yaw": -0.7279999852180481
      },
      "mask": "none",
      "maskConfidence": 0.7559999823570251,
      "mouth": "open",
      "mouthConfidence": 1,
      "sharpness": 1,
      ...
    }
  ],
  "requestId": "5BE08720-554C-566F-A642-****"
}

  • 本頁導讀 (1, M)
  • 前提條件
  • 安裝SDK
  • 訪問憑證
  • 使用臨時訪問憑證
  • 使用長期訪問憑證
文檔反饋
phone 聯絡我們

立即和Alibaba Cloud在線服務人員進行交談,獲取您想了解的產品信息以及最新折扣。

alicare alicarealicarealicare