Class S3Object

java.lang.Object
com.amazonaws.services.s3.model.S3Object
All Implemented Interfaces:
com.amazonaws.services.s3.internal.S3RequesterChargedResult, Closeable, Serializable, AutoCloseable

public class S3Object extends Object implements Closeable, Serializable, com.amazonaws.services.s3.internal.S3RequesterChargedResult
Represents an object stored in Amazon S3. This object contains the data content and the object metadata stored by Amazon S3, such as content type, content length, etc.
See Also:
  • Constructor Details

    • S3Object

      public S3Object()
  • Method Details

    • getObjectMetadata

      public ObjectMetadata getObjectMetadata()
      Gets the metadata stored by Amazon S3 for this object. The ObjectMetadata object includes any custom user metadata supplied by the caller when the object was uploaded, as well as HTTP metadata such as content length and content type.
      Returns:
      The metadata stored by Amazon S3 for this object.
      See Also:
    • setObjectMetadata

      public void setObjectMetadata(ObjectMetadata metadata)
      Sets the object metadata for this object.

      NOTE: This does not update the object metadata stored in Amazon S3, but only updates this object in local memory. To update an object's metadata in S3, use AmazonS3.copyObject(CopyObjectRequest) to copy the object to a new (or the same location) and specify new object metadata then.

      Parameters:
      metadata - The new metadata to set for this object in memory.
    • getObjectContent

      public S3ObjectInputStream getObjectContent()
      Gets the input stream containing the contents of this object.

      Note: The method is a simple getter and does not actually create a stream. If you retrieve an S3Object, you should close this input stream as soon as possible, because the object contents aren't buffered in memory and stream directly from Amazon S3. Further, failure to close this stream can cause the request pool to become blocked.

      Returns:
      An input stream containing the contents of this object.
      See Also:
    • setObjectContent

      public void setObjectContent(S3ObjectInputStream objectContent)
      Sets the input stream containing this object's contents.
      Parameters:
      objectContent - The input stream containing this object's contents.
      See Also:
    • setObjectContent

      public void setObjectContent(InputStream objectContent)
      Sets the input stream containing this object's contents.
      Parameters:
      objectContent - The input stream containing this object's contents. Will get wrapped in an S3ObjectInputStream.
      See Also:
    • getBucketName

      public String getBucketName()
      Gets the name of the bucket in which this object is contained.
      Returns:
      The name of the bucket in which this object is contained.
      See Also:
    • setBucketName

      public void setBucketName(String bucketName)
      Sets the name of the bucket in which this object is contained.
      Parameters:
      bucketName - The name of the bucket containing this object.
      See Also:
    • getKey

      public String getKey()
      Gets the key under which this object is stored.
      Returns:
      The key under which this object is stored.
      See Also:
    • setKey

      public void setKey(String key)
      Sets the key under which this object is stored.
      Parameters:
      key - The key under which this object is stored.
      See Also:
    • getRedirectLocation

      public String getRedirectLocation()
      Gets the redirect location for this object.
    • setRedirectLocation

      public void setRedirectLocation(String redirectLocation)
      Sets the redirect location for this object.
      Parameters:
      redirectLocation - the redirect location for that object.
    • toString

      public String toString()
      Overrides:
      toString in class Object
      See Also:
    • close

      public void close() throws IOException
      Releases any underlying system resources. If the resources are already released then invoking this method has no effect.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException - if an I/O error occurs
    • isRequesterCharged

      public boolean isRequesterCharged()
      Description copied from interface: com.amazonaws.services.s3.internal.S3RequesterChargedResult
      Returns true if the user has enabled Requester Pays option when conducting this operation from Requester Pays Bucket; else false.

      If a bucket is enabled for Requester Pays, then any attempt of operation from it without Requester Pays enabled will result in a 403 error and the bucket owner will be charged for the request.

      Enabling Requester Pays disables the ability to have anonymous access to this bucket

      Specified by:
      isRequesterCharged in interface com.amazonaws.services.s3.internal.S3RequesterChargedResult
      Returns:
      true if the user has enabled Requester Pays option for conducting this operation from Requester Pays Bucket.
    • setRequesterCharged

      public void setRequesterCharged(boolean isRequesterCharged)
      Description copied from interface: com.amazonaws.services.s3.internal.S3RequesterChargedResult
      Used for conducting this operation from a Requester Pays Bucket. If set the requester is charged for conducting the operation from the bucket.

      If a bucket is enabled for Requester Pays, then any attempt of operation from it without Requester Pays enabled will result in a 403 error and the bucket owner will be charged for the request.

      Specified by:
      setRequesterCharged in interface com.amazonaws.services.s3.internal.S3RequesterChargedResult
      Parameters:
      isRequesterCharged - Indicates requester is charged for this operation.