java.lang.Object
software.amazon.awssdk.services.s3.model.S3Object
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<S3Object.Builder,S3Object>

@Generated("software.amazon.awssdk:codegen") public final class S3Object extends Object implements SdkPojo, Serializable, ToCopyableBuilder<S3Object.Builder,S3Object>

An object consists of data and its descriptive metadata.

See Also:
  • Method Details

    • key

      public final String key()

      The name that you assign to an object. You use the object key to retrieve the object.

      Returns:
      The name that you assign to an object. You use the object key to retrieve the object.
    • lastModified

      public final Instant lastModified()

      Creation date of the object.

      Returns:
      Creation date of the object.
    • eTag

      public final String eTag()

      The entity tag is a hash of the object. The ETag reflects changes only to the contents of an object, not its metadata. The ETag may or may not be an MD5 digest of the object data. Whether or not it is depends on how the object was created and how it is encrypted as described below:

      • Objects created by the PUT Object, POST Object, or Copy operation, or through the Amazon Web Services Management Console, and are encrypted by SSE-S3 or plaintext, have ETags that are an MD5 digest of their object data.

      • Objects created by the PUT Object, POST Object, or Copy operation, or through the Amazon Web Services Management Console, and are encrypted by SSE-C or SSE-KMS, have ETags that are not an MD5 digest of their object data.

      • If an object is created by either the Multipart Upload or Part Copy operation, the ETag is not an MD5 digest, regardless of the method of encryption. If an object is larger than 16 MB, the Amazon Web Services Management Console will upload or copy that object as a Multipart Upload, and therefore the ETag will not be an MD5 digest.

      Returns:
      The entity tag is a hash of the object. The ETag reflects changes only to the contents of an object, not its metadata. The ETag may or may not be an MD5 digest of the object data. Whether or not it is depends on how the object was created and how it is encrypted as described below:

      • Objects created by the PUT Object, POST Object, or Copy operation, or through the Amazon Web Services Management Console, and are encrypted by SSE-S3 or plaintext, have ETags that are an MD5 digest of their object data.

      • Objects created by the PUT Object, POST Object, or Copy operation, or through the Amazon Web Services Management Console, and are encrypted by SSE-C or SSE-KMS, have ETags that are not an MD5 digest of their object data.

      • If an object is created by either the Multipart Upload or Part Copy operation, the ETag is not an MD5 digest, regardless of the method of encryption. If an object is larger than 16 MB, the Amazon Web Services Management Console will upload or copy that object as a Multipart Upload, and therefore the ETag will not be an MD5 digest.

    • checksumAlgorithm

      public final List<ChecksumAlgorithm> checksumAlgorithm()

      The algorithm that was used to create a checksum of the object.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasChecksumAlgorithm() method.

      Returns:
      The algorithm that was used to create a checksum of the object.
    • hasChecksumAlgorithm

      public final boolean hasChecksumAlgorithm()
      For responses, this returns true if the service returned a value for the ChecksumAlgorithm property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • checksumAlgorithmAsStrings

      public final List<String> checksumAlgorithmAsStrings()

      The algorithm that was used to create a checksum of the object.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasChecksumAlgorithm() method.

      Returns:
      The algorithm that was used to create a checksum of the object.
    • size

      public final Long size()

      Size in bytes of the object

      Returns:
      Size in bytes of the object
    • storageClass

      public final ObjectStorageClass storageClass()

      The class of storage used to store the object.

      If the service returns an enum value that is not available in the current SDK version, storageClass will return ObjectStorageClass.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from storageClassAsString().

      Returns:
      The class of storage used to store the object.
      See Also:
    • storageClassAsString

      public final String storageClassAsString()

      The class of storage used to store the object.

      If the service returns an enum value that is not available in the current SDK version, storageClass will return ObjectStorageClass.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from storageClassAsString().

      Returns:
      The class of storage used to store the object.
      See Also:
    • owner

      public final Owner owner()

      The owner of the object

      Returns:
      The owner of the object
    • restoreStatus

      public final RestoreStatus restoreStatus()

      Specifies the restoration status of an object. Objects in certain storage classes must be restored before they can be retrieved. For more information about these storage classes and how to work with archived objects, see Working with archived objects in the Amazon S3 User Guide.

      Returns:
      Specifies the restoration status of an object. Objects in certain storage classes must be restored before they can be retrieved. For more information about these storage classes and how to work with archived objects, see Working with archived objects in the Amazon S3 User Guide.
    • toBuilder

      public S3Object.Builder toBuilder()
      Description copied from interface: ToCopyableBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToCopyableBuilder<S3Object.Builder,S3Object>
      Returns:
      a builder for type T
    • builder

      public static S3Object.Builder builder()
    • serializableBuilderClass

      public static Class<? extends S3Object.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Description copied from interface: SdkPojo
      Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String toString()
      Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.