GetObjectExtended
is exactly like GetObject, except that it supports the following additional elements that can be used to accomplish much of the same functionality provided by HTTP GET headers (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
GetObjectExtended supports the following elements in addition to those supported by GetObject:
ByteRangeStart, ByteRangeEnd: These elements specify that only a portion of the object data should be retrieved. They follow the behavior of the HTTP byte ranges (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35).
IfModifiedSince: Return the object only if the object's timestamp is later than the specified timestamp. (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.25)
IfUnmodifiedSince: Return the object only if the object's timestamp is earlier than or equal to the specified timestamp. (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.28)
IfMatch: Return the object only if its ETag matches the supplied tag(s). (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.24)
IfNoneMatch: Return the object only if its ETag does not match the supplied tag(s). (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26)
ReturnCompleteObjectOnConditionFailure:ReturnCompleteObjectOnConditionFailure: If true, then if the request includes a range element and one or both of IfUnmodifiedSince/IfMatch elements, and the condition fails, return the entire object rather than a fault. This enables the If-Range functionality described here: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.27