com.amazonaws.services.s3.internal.Constants Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aws-android-sdk-s3 Show documentation
Show all versions of aws-android-sdk-s3 Show documentation
The AWS Android SDK for Amazon S3 module holds the client classes that are used for communicating with Amazon Simple Storage Service
/*
* 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.services.s3.internal;
import com.amazonaws.RequestClientOptions;
import com.amazonaws.SDKGlobalConfiguration;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.SSEAlgorithm;
import com.amazonaws.logging.Log;
import com.amazonaws.logging.LogFactory;
/**
* Constants used by the AWS S3 Java client.
*/
public class Constants {
/** Default hostname for the S3 service endpoint */
public static final String S3_HOSTNAME = "s3.amazonaws.com";
/** Hostname for the s3-external-1 service endpoint */
public static final String S3_EXTERNAL_1_HOSTNAME = "s3-external-1.amazonaws.com";
/** Service hostname for accessing accelerated S3 buckets */
public static final String S3_ACCELERATE_HOSTNAME = "s3-accelerate.amazonaws.com";
/** Service hostname for accessing dualstack accelerated S3 buckets */
public static final String S3_ACCELERATE_DUALSTACK_HOSTNAME = "s3-accelerate.dualstack.amazonaws.com";
/** Dualstack qualifier for S3 */
public static final String S3_DUALSTACK_QUALIFIER = "dualstack";
/** Service display name for Amazon S3 (not to be used in SigV4 signing) */
public static final String S3_SERVICE_DISPLAY_NAME = "Amazon S3";
/** Default encoding used for text data */
public static final String DEFAULT_ENCODING = "UTF-8";
/** URL encoding for s3 object keys */
public static final String URL_ENCODING = "url";
/** HMAC/SHA1 Algorithm per RFC 2104, used when signing S3 requests */
public static final String HMAC_SHA1_ALGORITHM = "HmacSHA1";
/** XML namespace URL used when sending S3 requests containing XML */
public static final String XML_NAMESPACE = "http://s3.amazonaws.com/doc/2006-03-01/";
/** Represents a null S3 version ID */
public static final String NULL_VERSION_ID = "null";
/**
* HTTP status code indicating that preconditions failed and thus the
* request failed.
*/
public static final int FAILED_PRECONDITION_STATUS_CODE = 412;
/** Kilobytes */
public static final int KB = 1024;
/** Megabytes */
public static final int MB = 1024 * KB;
/** Gigabytes */
public static final long GB = 1024 * MB;
/** The maximum allowed parts in a multipart upload. */
public static final int MAXIMUM_UPLOAD_PARTS = 10000;
/**
* 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. Add 1 to get around an implementation quirk when used
* against BufferedInputStream.
*/
public static final int DEFAULT_STREAM_BUFFER_SIZE = RequestClientOptions.DEFAULT_STREAM_BUFFER_SIZE;
/**
* Returns the buffer size override if it is specified in the system
* property, otherwise returns the default value.
* @return stream buffer size in int.
*/
@Deprecated
public static int getStreamBufferSize() {
int streamBufferSize = DEFAULT_STREAM_BUFFER_SIZE;
final String bufferSizeOverride =
System.getProperty(SDKGlobalConfiguration
.DEFAULT_S3_STREAM_BUFFER_SIZE);
if (bufferSizeOverride != null) {
try {
streamBufferSize = Integer.parseInt(bufferSizeOverride);
} catch (final Exception e) {
log.warn("Unable to parse buffer size override from value: " + bufferSizeOverride);
}
}
return streamBufferSize;
}
/**
* Returns the value of the system property
* {@link SDKGlobalConfiguration#DEFAULT_S3_STREAM_BUFFER_SIZE} as an
* Integer; or null if not set. This method exists for backward
* compatibility reasons.
* @return S3 stream buffer size in Integer.
*/
public static Integer getS3StreamBufferSize() {
final String s =
System.getProperty(SDKGlobalConfiguration.DEFAULT_S3_STREAM_BUFFER_SIZE);
if (s == null) {
return null;
}
try {
return Integer.valueOf(s);
} catch (final Exception e) {
log.warn("Unable to parse buffer size override from value: " + s);
}
return null;
}
/** Shared logger for client events */
private static Log log = LogFactory.getLog(AmazonS3Client.class);
/** Status code for no such bucket */
public static final int NO_SUCH_BUCKET_STATUS_CODE = 404;
/** Status code for access forbidden */
public static final int BUCKET_ACCESS_FORBIDDEN_STATUS_CODE = 403;
/** Status code for redirect */
public static final int BUCKET_REDIRECT_STATUS_CODE = 301;
/** Constant indicating the requester pays
* for data transfer cost for a bucket.
* */
public static final String REQUESTER_PAYS = "requester";
/**
* KMS encryption scheme
*/
public static final String SSE_AWS_KMS_ENCRYPTION_SCHEME =
SSEAlgorithm.KMS.getAlgorithm();
}