A computing device (220, 230, 320, 330, 930, 1030, 1130, 1610, 1620) for allowing synchronized access to a cloud storage system, CSS, (210, 310, 901, 1010, 1110, 1640), comprising: a processing unit; a storage system, wherein the storage system is configured to maintain objects, wherein each object is a file, each object having a content, a corresponding object stored in the CSS, and a state, wherein each state is any one of: a synchronized state, in which an object in the computing device has its content at least automatically updated in accordance with changes to content of its corresponding object in the CSS and changes to the content of the object in the computing device are automatically propagated to the content of the corresponding object in the CSS so as to continuously maintain the content of the object in the computing device in synchronization with the content of the corresponding object in the CSS so long as the object is in the synchronized state, and a stub state, in which an object's content is not automatically updated to be maintained in synchronization with the content of the corresponding object in the object in the CSS; and a memory, the memory containing instructions that, when executed by the processing unit, configure the computing device to: receive a request from a client to access data in a byte range within at least one object maintained in the storage system in the stub state; change the state of the requested at least one object from the stub state to a synchronized state upon receiving the request; synchronize data of the requested at least one object having a synchronized state with the CSS; and upon the byte range becoming available, provide the requested data to the client. a processing unit; a storage system, wherein the storage system is configured to maintain objects, wherein each object is a file, each object having a content, a corresponding object stored in the CSS, and a state, wherein each state is any one of: a synchronized state, in which an object in the computing device has its content at least automatically updated in accordance with changes to content of its corresponding object in the CSS and changes to the content of the object in the computing device are automatically propagated to the content of the corresponding object in the CSS so as to continuously maintain the content of the object in the computing device in synchronization with the content of the corresponding object in the CSS so long as the object is in the synchronized state, and a stub state, in which an object's content is not automatically updated to be maintained in synchronization with the content of the corresponding object in the object in the CSS; and a memory, the memory containing instructions that, when executed by the processing unit, configure the computing device to: receive a request from a client to access data in a byte range within at least one object maintained in the storage system in the stub state; change the state of the requested at least one object from the stub state to a synchronized state upon receiving the request; synchronize data of the requested at least one object having a synchronized state with the CSS; and upon the byte range becoming available, provide the requested data to the client. receive a request from a client to access data in a byte range within at least one object maintained in the storage system in the stub state; change the state of the requested at least one object from the stub state to a synchronized state upon receiving the request; synchronize data of the requested at least one object having a synchronized state with the CSS; and upon the byte range becoming available, provide the requested data to the client.