Изменить агента пользователя AWS SDK в Java - PullRequest
1 голос
/ 24 апреля 2019

Можно ли изменить пользовательский агент служб AWS SDK, когда мы запускаем такие службы, как S3 или IAM?Причина в том, что при использовании SDK любые действия из моего приложения будут регистрироваться как «Java 1.8 .....».Вместо этого я хотел бы изменить его на «Awesome Apps».

Мой код выглядит примерно так

public static AmazonS3 initS3() throws IOException{
    InputStream input = AWSS3.class.getClassLoader().getResourceAsStream("awscred.properties");
    Properties prop = new Properties();
    prop.load(input);
    BasicAWSCredentials  credentials  = new BasicAWSCredentials(prop.getProperty("provider.aws01.username"), prop.getProperty("provider.aws01.password"));
    AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withRegion(Regions.EU_CENTRAL_1).withCredentials(new AWSStaticCredentialsProvider(credentials)).build();
    return s3Client;
}
public static AmazonIdentityManagement initIAM() throws IOException{
    InputStream input = AWSIAM.class.getClassLoader().getResourceAsStream("awscred.properties"); //entah kenapa ga muncul resources disini ga langsung kedetect
    Properties prop = new Properties();
    prop.load(input);
    BasicAWSCredentials  credentials  = new BasicAWSCredentials(prop.getProperty("provider.aws06.username"), prop.getProperty("provider.aws06.password"));
    AmazonIdentityManagement iam = AmazonIdentityManagementClientBuilder.standard().withRegion(Regions.EU_CENTRAL_1).withCredentials(new AWSStaticCredentialsProvider(credentials)).build();
    return iam;
}

1 Ответ

0 голосов
/ 25 апреля 2019

Оказывается, это можно сделать с помощью ClientConfiguration. Вот пример для S3:

public static AmazonS3 initS3() throws IOException{
        ClientConfiguration config = new ClientConfiguration();
        config.setUserAgentPrefix("CloudRAID Management");
        config.setUserAgentSuffix("006b8507-b815-47b9-bce0-08b91981f17a");

        InputStream input = AWSS3.class.getClassLoader().getResourceAsStream("awscred.properties");
        Properties prop = new Properties();
        prop.load(input);
        BasicAWSCredentials  credentials  = new BasicAWSCredentials(prop.getProperty("provider.aws01.username"), prop.getProperty("provider.aws01.password"));
        AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withRegion(Regions.EU_CENTRAL_1).withCredentials(new AWSStaticCredentialsProvider(credentials)).withClientConfiguration(config).build();

        return s3Client;

}
...