Object ID is used to address an object stored in a Repository.
When objects get stored in a Repository, the user does not pick their identifiers, but instead the repository computes the identifier as a function of the contents of the object itself. Because of that property, the repository achieves data de-duplication: multiple identical objects will have the same object IDs, they can be stored only once, saving upload time and storage space.
There are two types of objects: Direct and Indirect Objects
Small objects, such as text files, JPEG images with sizes not exceeding few megabytes are usually stored as Direct Objects which are represented by a single Block. Direct objects have identifiers starting with D.
Larger objects, such as video or database files become as Indirect Objects and are dynamically split into several Direct Objects + another Direct Object object that lists them (called Index Object). Indirect objects have identifiers starting with I followed by the name of the index object (which typically starts with D but in extreme cases could be indirect as well).
For example:
D44bc41f66eae10a6bfce26b7d3485d07is a valid identifier of a Direct ObjectID065b643809cc0718ed46b4f8b944b63ais a valid identifier of an Indirect Object
Note that D065b643809cc0718ed46b4f8b944b63a is also a valid identifier of an Index Object of ID065b643809cc0718ed46b4f8b944b63a