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:
ObjectMetadata
, Serialized Form
-
-
Constructor Summary
Constructors Constructor Description S3Object()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Releases any underlying system resources.String
getBucketName()
Gets the name of the bucket in which this object is contained.String
getKey()
Gets the key under which this object is stored.S3ObjectInputStream
getObjectContent()
Gets the input stream containing the contents of this object.ObjectMetadata
getObjectMetadata()
Gets the metadata stored by Amazon S3 for this object.String
getRedirectLocation()
Gets the redirect location for this object.boolean
isRequesterCharged()
Returns true if the user has enabled Requester Pays option when conducting this operation from Requester Pays Bucket; else false.void
setBucketName(String bucketName)
Sets the name of the bucket in which this object is contained.void
setKey(String key)
Sets the key under which this object is stored.void
setObjectContent(S3ObjectInputStream objectContent)
Sets the input stream containing this object's contents.void
setObjectContent(InputStream objectContent)
Sets the input stream containing this object's contents.void
setObjectMetadata(ObjectMetadata metadata)
Sets the object metadata for this object.void
setRedirectLocation(String redirectLocation)
Sets the redirect location for this object.void
setRequesterCharged(boolean isRequesterCharged)
Used for conducting this operation from a Requester Pays Bucket.String
toString()
-
-
-
Method Detail
-
getObjectMetadata
public ObjectMetadata getObjectMetadata()
Gets the metadata stored by Amazon S3 for this object. TheObjectMetadata
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:
getObjectContent()
-
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:
getObjectMetadata()
,setObjectContent(InputStream)
-
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:
getObjectContent()
-
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:
getObjectContent()
-
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(String)
-
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:
getBucketName()
-
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(String)
-
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:
getKey()
-
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 classObject
- See Also:
Object.toString()
-
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 interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- 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 interfacecom.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 interfacecom.amazonaws.services.s3.internal.S3RequesterChargedResult
- Parameters:
isRequesterCharged
- Indicates requester is charged for this operation.
-
-