A computer-implemented method of storage management for a client device, the method comprising: receiving by the client device a request to access a content item; determining by the client device that the requested content item is a shadow item, wherein the shadow item represents a content item stored on a separate host device that is remote to the client device and the shadow item is comprised of metadata of the content item without content data of the content item; responsive to determining that the requested content item is a shadow item, requesting, by client device from the host device, a size of the requested content item stored on the host device; receiving by the client device the size of the requested content item; determining that the size of the requested content item exceeds a remaining amount of storage allocated on the client device; and responsive to determining that the requested size of the requested content item exceeds the remaining amount of storage allocated on the client device: selecting at least one content item to remove from the client device, wherein a copy of each selected content item is stored on the host device; replacing each selected content item with a shadow item representing the selected content item on the client device to allocate a portion of the storage in the client device for storing the requested content item; and replacing the shadow item representing the requested content item with the corresponding requested content item using the allocated portion of the storage. receiving by the client device a request to access a content item; determining by the client device that the requested content item is a shadow item, wherein the shadow item represents a content item stored on a separate host device that is remote to the client device and the shadow item is comprised of metadata of the content item without content data of the content item; responsive to determining that the requested content item is a shadow item, requesting, by client device from the host device, a size of the requested content item stored on the host device; receiving by the client device the size of the requested content item; determining that the size of the requested content item exceeds a remaining amount of storage allocated on the client device; and responsive to determining that the requested size of the requested content item exceeds the remaining amount of storage allocated on the client device: selecting at least one content item to remove from the client device, wherein a copy of each selected content item is stored on the host device; replacing each selected content item with a shadow item representing the selected content item on the client device to allocate a portion of the storage in the client device for storing the requested content item; and replacing the shadow item representing the requested content item with the corresponding requested content item using the allocated portion of the storage. selecting at least one content item to remove from the client device, wherein a copy of each selected content item is stored on the host device; replacing each selected content item with a shadow item representing the selected content item on the client device to allocate a portion of the storage in the client device for storing the requested content item; and replacing the shadow item representing the requested content item with the corresponding requested content item using the allocated portion of the storage.