| /* | |
| * Copyright 2010-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"). | |
| * You may not use this file except in compliance with the License. | |
| * A copy of the License is located at | |
| * | |
| * http://aws.amazon.com/apache2.0 | |
| * | |
| * or in the "license" file accompanying this file. This file is distributed | |
| * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either | |
| * express or implied. See the License for the specific language governing | |
| * permissions and limitations under the License. | |
| */ | |
| package com.amazonaws; | |
| /** | |
| * SDKGlobalConfiguration is to configure any global settings | |
| */ | |
| public class SDKGlobalConfiguration { | |
| /////////////////////// System Properties /////////////////////// | |
| /** System property name for the AWS access key ID */ | |
| public static final String ACCESS_KEY_SYSTEM_PROPERTY = "aws.accessKeyId"; | |
| /** System property name for the AWS secret key */ | |
| public static final String SECRET_KEY_SYSTEM_PROPERTY = "aws.secretKey"; | |
| /** | |
| * System property name for the AWS session token | |
| */ | |
| public static final String SESSION_TOKEN_SYSTEM_PROPERTY = "aws.sessionToken"; | |
| /** | |
| * System property for overriding the Amazon EC2 Instance Metadata Service | |
| * endpoint. | |
| */ | |
| public static final String EC2_METADATA_SERVICE_OVERRIDE_SYSTEM_PROPERTY = | |
| "com.amazonaws.sdk.ec2MetadataServiceEndpointOverride"; | |
| /** | |
| * By default, the AmazonS3Client will continue to use the legacy | |
| * S3Signer to authenticate requests it makes to S3 in regions that | |
| * support the older protocol. Setting this property to anything other | |
| * than null will cause the client to upgrade to Signature Version 4 | |
| * whenever it has been configured with an explicit region (which is a | |
| * required parameter for Signature Version 4). The client will continue | |
| * to use the older signature protocol when not configured with a region | |
| * to avoid breaking existing applications. | |
| * <p> | |
| * Signature Version 4 is more secure than the legacy S3Signer, but | |
| * requires calculating a SHA-256 hash of the entire request body which | |
| * can be expensive for large upload requests. | |
| */ | |
| @Deprecated | |
| public static final String ENABLE_S3_SIGV4_SYSTEM_PROPERTY = | |
| "com.amazonaws.services.s3.enableV4"; | |
| /** | |
| * Like {@link #ENABLE_S3_SIGV4_SYSTEM_PROPERTY}, but causes the client to | |
| * always use Signature Version 4, assuming a region of | |
| * "us-east-1" if no explicit region has been configured. This | |
| * guarantees that the more secure authentication protocol will be used, | |
| * but will cause authentication failures in code that accesses buckets in | |
| * regions other than US Standard without explicitly configuring a region. | |
| */ | |
| @Deprecated | |
| public static final String ENFORCE_S3_SIGV4_SYSTEM_PROPERTY = | |
| "com.amazonaws.services.s3.enforceV4"; | |
| /** | |
| * @deprecated with {@link AmazonWebServiceRequest#getRequestClientOptions()} | |
| * and {@link RequestClientOptions#setReadLimit(int)}. | |
| * <p> | |
| * The default size of the buffer when uploading data from a stream. A | |
| * buffer of this size will be created and filled with the first bytes from | |
| * a stream being uploaded so that any transmit errors that occur in that | |
| * section of the data can be automatically retried without the caller's | |
| * intervention. | |
| * <p> | |
| * If not set, the default value of 128 KB will be used. | |
| */ | |
| @Deprecated | |
| public static final String DEFAULT_S3_STREAM_BUFFER_SIZE = | |
| "com.amazonaws.sdk.s3.defaultStreamBufferSize"; | |
| /** | |
| * @deprecated by {@link #DEFAULT_METRICS_SYSTEM_PROPERTY}. | |
| * | |
| * Internal system property to enable timing info collection. | |
| */ | |
| @Deprecated | |
| public static final String PROFILING_SYSTEM_PROPERTY = | |
| "com.amazonaws.sdk.enableRuntimeProfiling"; | |
| /////////////////////// Environment Variables /////////////////////// | |
| /** Environment variable name for the AWS access key ID */ | |
| public static final String ACCESS_KEY_ENV_VAR = "AWS_ACCESS_KEY_ID"; | |
| /** Alternate environment variable name for the AWS access key ID */ | |
| public static final String ALTERNATE_ACCESS_KEY_ENV_VAR = "AWS_ACCESS_KEY"; | |
| /** Environment variable name for the AWS secret key */ | |
| public static final String SECRET_KEY_ENV_VAR = "AWS_SECRET_KEY"; | |
| /** Alternate environment variable name for the AWS secret key */ | |
| public static final String ALTERNATE_SECRET_KEY_ENV_VAR = "AWS_SECRET_ACCESS_KEY"; | |
| /** Environment variable name for the AWS session token */ | |
| public static final String AWS_SESSION_TOKEN_ENV_VAR = "AWS_SESSION_TOKEN"; | |
| /** | |
| * Environment variable to set an alternate path to the shared config file (default path is | |
| * ~/.aws/config). | |
| */ | |
| public static final String AWS_CONFIG_FILE_ENV_VAR = "AWS_CONFIG_FILE"; | |
| /** | |
| * Environment variable to disable loading credentials or regions from EC2 Metadata instance service. | |
| */ | |
| public static final String AWS_EC2_METADATA_DISABLED_ENV_VAR = "AWS_EC2_METADATA_DISABLED"; | |
| /** | |
| * System property to disable loading credentials or regions from EC2 Metadata instance service. | |
| */ | |
| public static final String AWS_EC2_METADATA_DISABLED_SYSTEM_PROPERTY = "com.amazonaws.sdk.disableEc2Metadata"; | |
| /** | |
| * @deprecated by {@link SDKGlobalTime#setGlobalTimeOffset(int)} | |
| */ | |
| @Deprecated | |
| public static void setGlobalTimeOffset(int timeOffset) { | |
| SDKGlobalTime.setGlobalTimeOffset(timeOffset); | |
| } | |
| /** | |
| * @deprecated by {@link SDKGlobalTime#getGlobalTimeOffset()} | |
| */ | |
| @Deprecated | |
| public static int getGlobalTimeOffset() { | |
| return SDKGlobalTime.getGlobalTimeOffset(); | |
| } | |
| public static boolean isEc2MetadataDisabled() { | |
| return isPropertyTrue(System.getProperty(AWS_EC2_METADATA_DISABLED_SYSTEM_PROPERTY)) || | |
| isPropertyTrue(System.getenv(AWS_EC2_METADATA_DISABLED_ENV_VAR)); | |
| } | |
| private static boolean isPropertyTrue(final String property) { | |
| if (property != null && property.equalsIgnoreCase("true")) { | |
| return true; | |
| } | |
| return false; | |
| } | |
| } |