All GetObjectRequests must specify a bucket name and key.
Beyond that, requests can also specify:

The range of bytes within the object to download,

Constraints controlling if the object will be downloaded or not.

If you are uploading or accessing KMS-encrypted objects, you need to
specify the correct region of the bucket on your client and configure AWS
Signature Version 4 for added security. For more information on how to do
this, see
http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify
-signature-version

Sets the optional version ID specifying which version of the object to
download and returns this object, enabling additional method calls to be
chained together. If not specified, the most recent version will be
downloaded.

Gets the optional inclusive byte range within the desired object
that will be downloaded by this request.

The range is returned as
a two element array, containing the start and end index of the byte range.
If no byte range has been specified, the entire object is downloaded and
this method returns null.

Returns:

A two element array indicating the inclusive start index and end index
within the object being downloaded by this request.
Returns null if no range has been specified,
and the whole object is
to be downloaded.

Gets the optional list of ETag constraints that, when present, must
include a match for the object's current ETag in order for this
request to be executed. Only one ETag in the list needs to match for this
request to be executed by Amazon S3.

Returns:

The optional list of ETag constraints that when present must
include a match for the object's current ETag in order for this
request to be executed.

Sets the optional list of ETag constraints that when present must
include a match for the object's current ETag in order for this
request to be executed. If none of the specified ETags match the object's
current ETag, this request will not be executed. Only one ETag in the
list needs to match for the request to be executed by Amazon S3.

Parameters:

eTagList
The optional list of ETag constraints that must include a
match for the object's current ETag in order for this request
to be executed.

Sets a single ETag constraint to this request.
Returns this GetObjectRequest, enabling additional method
calls to be chained together.

Multiple ETag constraints can be added to a request, but one must match the object's
current ETag in order for this request to be executed. If none of the
ETag constraints added to this request match the object's current ETag,
this request will not be executed by Amazon S3.

Gets the optional list of ETag constraints that when present, must
not include a match for the object's current ETag in order for this
request to be executed. If any entry in the non-matching ETag constraint
list matches the object's current ETag, this request will not be
executed by Amazon S3.

Returns:

The optional list of ETag constraints that when present, must
not include a match for the object's current ETag in order
for this request to be executed.

Sets the optional list of ETag constraints that when present must
not include a match for the object's current ETag in order for this
request to be executed. If any entry in the non-matching ETag constraint
list matches the object's current ETag, this request will not be
executed by Amazon S3.

Parameters:

eTagList
The list of ETag constraints that, when present, must not
include a match for the object's current ETag in order for
this request to be executed.

Sets a single ETag constraint to this request.
Returns this GetObjectRequest, enabling additional method
calls to be chained together.

Multiple ETag
constraints can be added to a request, but all ETag constraints must
not match the object's current ETag in order for this request to be
executed. If any entry in the non-matching ETag constraint list matches
the object's current ETag, this request will not be executed by
Amazon S3.

Sets the optional unmodified constraint that restricts this request
to executing only if the object has not been modified after
the specified date.
Returns this GetObjectRequest, enabling additional method
calls to be chained together.

Note that Amazon S3 will ignore any dates occurring in the future.

Parameters:

date
The unmodified constraint that restricts this request to
executing only if the object has not been
modified after this date.

Sets the optional modified constraint that restricts this request
to executing only if the object has been modified after the
specified date.
Returns this GetObjectRequest, enabling additional method
calls to be chained together.

Note that Amazon S3 will ignore any dates occurring in the future.

Parameters:

date
The modified constraint that restricts this request to
executing only if the object has been modified
after the specified date.