Patent ID: 8650216

Claim:
A computer-implemented method to be executed at least in part in a computing device for managing distributed storage of data in a collaboration environment, the method comprising: receiving, at a collaboration server computer, unstructured data to be stored in a collaboration system; determining whether to store at least one portion of the received unstructured data in an external data store; upon determining not to store any portion of the received unstructured data in the external data store: storing all of the received unstructured data in an internal data store managed by the collaboration server computer; upon determining to store the at least one portion of the received unstructured data in the external data store: requesting an identifier generated by a storage provider managing the external data store; receiving the identifier from the storage provider; associating the received identifier with at least one other portion of data stored in the internal data store before storing the identifier, wherein the identifier is stored as metadata associated with the at least one other portion of data stored in the internal data store; providing the at least one portion of the received unstructured data to the storage provider; and storing the identifier in the internal data store; receiving a request for data retrieval; upon determining that a portion of the requested data is stored in the external data store: retrieving an identifier associated with the portion of requested data stored in the external data store from the internal data store; providing the retrieved identifier to the storage provider for retrieval of the externally stored portion of the data from the external data store; receiving the externally stored data; and providing the requested data.