Class S3Object

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.

      Directory buckets - MD5 is not supported by directory buckets.

      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.

      Directory buckets - MD5 is not supported by directory buckets.

    • 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.
    • checksumType

      public final ChecksumType checksumType()

      The checksum type that is used to calculate the object’s checksum value. For more information, see Checking object integrity in the Amazon S3 User Guide.

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

      Returns:
      The checksum type that is used to calculate the object’s checksum value. For more information, see Checking object integrity in the Amazon S3 User Guide.
      See Also:
    • checksumTypeAsString

      public final String checksumTypeAsString()

      The checksum type that is used to calculate the object’s checksum value. For more information, see Checking object integrity in the Amazon S3 User Guide.

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

      Returns:
      The checksum type that is used to calculate the object’s checksum value. For more information, see Checking object integrity in the Amazon S3 User Guide.
      See Also:
    • 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.

      Directory buckets - Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.

      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.

      Directory buckets - Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.

      See Also:
    • storageClassAsString

      public final String storageClassAsString()

      The class of storage used to store the object.

      Directory buckets - Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.

      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.

      Directory buckets - Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.

      See Also:
    • owner

      public final Owner owner()

      The owner of the object

      Directory buckets - The bucket owner is returned as the object owner.

      Returns:
      The owner of the object

      Directory buckets - The bucket owner is returned as the object owner.

    • 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.

      This functionality is not supported for directory buckets. Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.

      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.

      This functionality is not supported for directory buckets. Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.

    • 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.
    • sdkFieldNameToField

      public final Map<String,SdkField<?>> sdkFieldNameToField()
      Specified by:
      sdkFieldNameToField in interface SdkPojo
      Returns:
      The mapping between the field name and its corresponding field.