zoukankan      html  css  js  c++  java
  • AmazonRekognition-凭证验证/获取凭证失败

    AmazonRekognition-凭证验证/获取凭证失败

    最近在对接亚马逊图像检测接口,好几份100多页的英文PDF,让人看得云里雾里,摸不清头脑,好在耐心将涉及到的内容看完。

    此处记录在使用Java+sdk调用AmazonRekognition时,无法获取到AWS用户凭证的问题

    一、代码错误提示

    The security token included in the request is invalid. (Service: AmazonRekognition; Status Code: 400; Error Code: UnrecognizedClientException; Request ID

    二、问题分析

    1、接口返回信息为token鉴权失败,首先查看是否为凭证信息错误(Q1)。
    2、调用AmazonRekognition方法有3中,本地CLI调用、SDK调用、AWS客户端调用,测试CLI(使用同一凭证)调用成功,此时可以排除Q1.
    3、排除Q1问题之后,可以确认问题为配置信息未能正常获取到,但是此时AWS官网API给出的文档中调用接口的方式只有:AmazonRekognition amazonRekognition = AmazonRekognitionClientBuilder().defaultClient();
    4、但是在查看官方给出的这种默认获取方式的源码中并未找到它底层的获取方式。(也可能时能力不足未发现)
    5、此时可以确认官方给出的方法未能正常获取凭证(Q2),所以导致官方验证用户未通过。
    6、之前在调用S3的时候我们可以知道,配置文件获取有3种方式:1:环境变量。2:本地配置文件。3:代码中配置文件
    7、之前我们验证凭证都是使用本地配置文件。那么在调用AmazonRekognition也同样使用。代码如下:

    三、AmazonRekognition接口凭证验证

    import com.amazonaws.auth.AWSCredentials;
    import com.amazonaws.auth.AWSStaticCredentialsProvider;
    
    public static AmazonRekognition getRekognition() {
            /**
             * 方法一:
             */
            AWSCredentials credentials = new ProfileCredentialsProvider().getCredentials();
            AmazonRekognition amazonRekognition = AmazonRekognitionClientBuilder.standard().withRegion(Regions.US_EAST_1)
                    .withCredentials(new AWSStaticCredentialsProvider(credentials)).build();
    
    
            /**
             * 方法二:
             */
    //        AmazonRekognition amazonRekognition = AmazonRekognitionClientBuilder.defaultClient();
            return amazonRekognition;
        }

    四、pom.xml依赖

            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-rekognition</artifactId>
                <version>1.11.759</version>
             </dependency>    
    往外张望的人在做梦,向内审视的人才是清醒的
  • 相关阅读:
    AVL树的旋转操作详解
    KMP算法的优化与详解
    手机号码等的正则验证
    Josephus问题的java实现
    Match类解析
    this的相关介绍与用法
    Iterator——迭代接口
    final对于访问效率的影响
    final关键字介绍
    JAVA事件监听机制与实现
  • 原文地址:https://www.cnblogs.com/StefanieYang/p/13212508.html
Copyright © 2011-2022 走看看