Represents the object metadata that is stored with Amazon S3. This includes
custom user-supplied metadata, as well as the standard HTTP headers that
Amazon S3 sends and receives (Content-Length, ETag, Content-MD5, etc.).

Gets the optional Content-Encoding HTTP header specifying what content
encodings have been applied to the object and what decoding mechanisms
must be applied in order to obtain the media-type referenced by the
Content-Type field.

Sets the optional Content-Encoding HTTP header specifying what content
encodings have been applied to the object and what decoding mechanisms
must be applied in order to obtain the media-type referenced by the
Content-Type field.

Field Detail

AES_256_SERVER_SIDE_ENCRYPTION

KMS_SERVER_SIDE_ENCRYPTION

Constructor Detail

ObjectMetadata

public ObjectMetadata()

Method Detail

getUserMetadata

public java.util.Map<java.lang.String,java.lang.String> getUserMetadata()

Gets the custom user-metadata for the associated object.

Amazon S3 can store additional metadata on objects by internally
representing it as HTTP headers prefixed with "x-amz-meta-". Use
user-metadata to store arbitrary metadata alongside their data in Amazon
S3. When setting user metadata, callers should not include the
internal "x-amz-meta-" prefix; this library will handle that for them.
Likewise, when callers retrieve custom user-metadata, they will not see
the "x-amz-meta-" header prefix.

User-metadata keys are case insensitive and will be returned as
lowercase strings, even if they were originally specified with uppercase
strings.

Note that user-metadata for an object is limited by the HTTP request
header limit. All HTTP headers included in a request (including user
metadata headers and other standard HTTP headers) must be less than 8KB.

setUserMetadata

Amazon S3 can store additional metadata on objects by internally
representing it as HTTP headers prefixed with "x-amz-meta-". Use
user-metadata to store arbitrary metadata alongside their data in Amazon
S3. When setting user metadata, callers should not include the
internal "x-amz-meta-" prefix; this library will handle that for them.
Likewise, when callers retrieve custom user-metadata, they will not see
the "x-amz-meta-" header prefix.

User-metadata keys are case insensitive and will be returned as
lowercase strings, even if they were originally specified with uppercase
strings.

Note that user-metadata for an object is limited by the HTTP request
header limit. All HTTP headers included in a request (including user
metadata headers and other standard HTTP headers) must be less than 8KB.

Parameters:

userMetadata - The custom user-metadata for the associated object.
Note that the key should not include the internal S3 HTTP
header prefix.

addUserMetadata

Adds the key value pair of custom user-metadata for the associated
object. If the entry in the custom user-metadata map already contains the
specified key, it will be replaced with these new contents.

Amazon S3 can store additional metadata on objects by internally
representing it as HTTP headers prefixed with "x-amz-meta-". Use
user-metadata to store arbitrary metadata alongside their data in Amazon
S3. When setting user metadata, callers should not include the
internal "x-amz-meta-" prefix; this library will handle that for them.
Likewise, when callers retrieve custom user-metadata, they will not see
the "x-amz-meta-" header prefix.

Note that user-metadata for an object is limited by the HTTP request
header limit. All HTTP headers included in a request (including user
metadata headers and other standard HTTP headers) must be less than 8KB.

Parameters:

key - The key for the custom user metadata entry. Note that the key
should not include the internal S3 HTTP header prefix.

getRawMetadata

public java.util.Map<java.lang.String,java.lang.Object> getRawMetadata()

For internal use only. Gets a map of the raw metadata/headers for the
associated object.

Returns:

A map of the raw metadata/headers for the associated object.

getRawMetadataValue

public java.lang.Object getRawMetadataValue(java.lang.String key)

For internal use only. Returns the raw value of the metadata/headers for
the specified key.

getLastModified

public java.util.Date getLastModified()

Gets the value of the Last-Modified header, indicating the date and time
at which Amazon S3 last recorded a modification to the associated object.

Returns:

The date and time at which Amazon S3 last recorded a modification
to the associated object. Returns null if the
Last-Modified header hasn't been set.

setLastModified

public void setLastModified(java.util.Date lastModified)

For internal use only. Sets the Last-Modified header value indicating the
date and time at which Amazon S3 last recorded a modification to the
associated object.

Parameters:

lastModified - The date and time at which Amazon S3 last recorded a
modification to the associated object.

getContentLength

public long getContentLength()

Gets the Content-Length HTTP header indicating the size of the associated
object in bytes.

This field is required when uploading objects to S3, but the AWS S3 Java
client will automatically set it when working directly with files. When
uploading directly from a stream, set this field if possible. Otherwise
the client must buffer the entire stream in order to calculate the
content length before sending the data to Amazon S3.

getInstanceLength

Returns the physical length of the entire object stored in S3. This is
useful during, for example, a range get operation.

setContentLength

public void setContentLength(long contentLength)

Sets the Content-Length HTTP header indicating the size of the associated
object in bytes.

This field is required when uploading objects to S3, but the AWS S3 Java
client will automatically set it when working directly with files. When
uploading directly from a stream, set this field if possible. Otherwise
the client must buffer the entire stream in order to calculate the
content length before sending the data to Amazon S3.

getContentType

public java.lang.String getContentType()

Gets the Content-Type HTTP header, which indicates the type of content
stored in the associated object. The value of this header is a standard
MIME type.

When uploading files, the AWS S3 Java client will attempt to determine
the correct content type if one hasn't been set yet. Users are
responsible for ensuring a suitable content type is set when uploading
streams. If no content type is provided and cannot be determined by the
filename, the default content type, "application/octet-stream", will be
used.

setContentType

Sets the Content-Type HTTP header indicating the type of content stored
in the associated object. The value of this header is a standard MIME
type.

When uploading files, the AWS S3 Java client will attempt to determine
the correct content type if one hasn't been set yet. Users are
responsible for ensuring a suitable content type is set when uploading
streams. If no content type is provided and cannot be determined by the
filename, the default content type "application/octet-stream" will be
used.

getContentEncoding

public java.lang.String getContentEncoding()

Gets the optional Content-Encoding HTTP header specifying what content
encodings have been applied to the object and what decoding mechanisms
must be applied in order to obtain the media-type referenced by the
Content-Type field.

setContentEncoding

public void setContentEncoding(java.lang.String encoding)

Sets the optional Content-Encoding HTTP header specifying what content
encodings have been applied to the object and what decoding mechanisms
must be applied in order to obtain the media-type referenced by the
Content-Type field.

setContentMD5

public void setContentMD5(java.lang.String md5Base64)

Sets the base64 encoded 128-bit MD5 digest of the associated object
(content - not including headers) according to RFC 1864. This data is
used as a message integrity check to verify that the data received by
Amazon S3 is the same data that the caller sent. If set to null,then the
MD5 digest is removed from the metadata.

This field represents the base64 encoded 128-bit MD5 digest digest of an
object's content as calculated on the caller's side. The ETag metadata
field represents the hex encoded 128-bit MD5 digest as computed by Amazon
S3.

The AWS S3 Android client will attempt to calculate this field
automatically when uploading files to Amazon S3.

Parameters:

md5Base64 - The base64 encoded MD5 hash of the content for the
object associated with this metadata.

getContentMD5

public java.lang.String getContentMD5()

Gets the base64 encoded 128-bit MD5 digest of the associated object
(content - not including headers) according to RFC 1864. This data is
used as a message integrity check to verify that the data received by
Amazon S3 is the same data that the caller sent.

This field represents the base64 encoded 128-bit MD5 digest digest of an
object's content as calculated on the caller's side. The ETag metadata
field represents the hex encoded 128-bit MD5 digest as computed by Amazon
S3.

The AWS S3 Java client will attempt to calculate this field automatically
when uploading files to Amazon S3.

Returns:

The base64 encoded MD5 hash of the content for the associated
object. Returns null if the MD5 hash of the content
hasn't been set.

getETag

public java.lang.String getETag()

Gets the hex encoded 128-bit MD5 digest of the associated object
according to RFC 1864. This data is used as an integrity check to verify
that the data received by the caller is the same data that was sent by
Amazon S3.

This field represents the hex encoded 128-bit MD5 digest of an object's
content as calculated by Amazon S3. The ContentMD5 field represents the
base64 encoded 128-bit MD5 digest as calculated on the caller's side.

Returns:

The hex encoded MD5 hash of the content for the associated object
as calculated by Amazon S3. Returns null if it
hasn't been set yet.

getVersionId

public java.lang.String getVersionId()

Gets the version ID of the associated Amazon S3 object if available.
Version IDs are only assigned to objects when an object is uploaded to an
Amazon S3 bucket that has object versioning enabled.

Returns:

The version ID of the associated Amazon S3 object if available.

getSSEAlgorithm

public java.lang.String getSSEAlgorithm()

Returns the server-side encryption algorithm when encrypting the object
using AWS-managed keys .

getRestoreExpirationTime

public java.util.Date getRestoreExpirationTime()

Returns the time at which an object that has been temporarily restored
from Amazon Glacier will expire, and will need to be restored again in
order to be accessed. Returns null if this is not a temporary copy of an
object restored from Glacier.