A computing device (220, 230, 320, 330, 930, 1030, 1130, 1610, 1620) for allowing storage services with a designated cloud storage system -CSS- (210, 310, 910, 1010, 1110, 1640), the storage services enabling both an upload direction to the designated CSS for storing data therein and a download direction for retrieval of data previously stored by the computing device in the designated CSS, comprising: a processing unit; and a memory, the memory containing instructions that, when executed by the processing unit, configure the computing device to: dynamically select a route between the designated CSS and the computing device, wherein the designated CSS is geographically remote from the computing device; and establish, based on the selected route, a data flow between the designated CSS and the computing device, wherein the data flow is established to allow at least a storage service related to the designated CSS; wherein the selected route is one of a direct route between the designated CSS and the computing device and an indirect route from the computing device through at least one intermediate computing device before the designated CSS; wherein, from the point of view of the computing device, the storage related service is deemed complete when the data flow is completed with the designated CSS when a direct route is selected and with the intermediate computing device when an indirect route is selected; wherein, when an indirect route is selected for storing data, the storing is ultimately completed with the designated CSS; wherein, when an indirect route is selected for purpose of retrieving data, when at least part of the data is available in the storage of the at least one intermediate computing device, retrieval of at least part of the data is ultimately completed from the intermediate computing device; and wherein, the intermediate computing device is configured to synchronize at least a portion of a directory structure of the designated CSS. a processing unit; and a memory, the memory containing instructions that, when executed by the processing unit, configure the computing device to: dynamically select a route between the designated CSS and the computing device, wherein the designated CSS is geographically remote from the computing device; and establish, based on the selected route, a data flow between the designated CSS and the computing device, wherein the data flow is established to allow at least a storage service related to the designated CSS; dynamically select a route between the designated CSS and the computing device, wherein the designated CSS is geographically remote from the computing device; and establish, based on the selected route, a data flow between the designated CSS and the computing device, wherein the data flow is established to allow at least a storage service related to the designated CSS; wherein the selected route is one of a direct route between the designated CSS and the computing device and an indirect route from the computing device through at least one intermediate computing device before the designated CSS; wherein, from the point of view of the computing device, the storage related service is deemed complete when the data flow is completed with the designated CSS when a direct route is selected and with the intermediate computing device when an indirect route is selected; wherein, when an indirect route is selected for storing data, the storing is ultimately completed with the designated CSS; wherein, when an indirect route is selected for purpose of retrieving data, when at least part of the data is available in the storage of the at least one intermediate computing device, retrieval of at least part of the data is ultimately completed from the intermediate computing device; and wherein, the intermediate computing device is configured to synchronize at least a portion of a directory structure of the designated CSS.