By default, the content of an object cannot be greater than 5 GB. However, you can use a number of smaller objects to construct a large object. The large object is comprised of two types of objects:
Segment objects store the object content. You can divide your content into segments, and upload each segment into its own segment object. Segment objects do not have any special features. You create, update, download, and delete segment objects just as you would normal objects.
A manifest object links the segment objects into one logical large object. When you download a manifest object, Object Storage concatenates and returns the contents of the segment objects in the response body of the request. This behavior extends to the response headers returned by GET and HEAD requests. The
Content-Length
response header value is the total size of all segment objects. Object Storage calculates theETag
response header value by taking theETag
value of each segment, concatenating them together, and returning the MD5 checksum of the result. The manifest object types are:- Static large objects
The manifest object content is an ordered list of the names of the segment objects in JSON format. See the section called “Static large objects”.
- Dynamic large objects
The manifest object has no content but it has a
X-Object-Manifest
metadata header. The value of this header is{container}/{prefix}
, where{container}
is the name of the container where the segment objects are stored, and{prefix}
is a string that all segment objects have in common. See the section called “Dynamic large objects”.
Note | |
---|---|
If you make a COPY request by using a manifest object as the source, the new object is a normal, and not a segment, object. If the total size of the source segment objects exceeds 5 GB, the COPY request fails. However, you can make a duplicate of the manifest object and this new object can be larger than 5 GB. |