A computer-readable medium, excluding a transitory propagating signal, that carries instructions, which when executed by at least one processor, utilize cloud storage resources to store at least a first portion of at least one data file within a network attached storage (NAS) device, wherein the NAS device includes a NAS file system and a non-volatile data store, and wherein the NAS device is communicatively coupled to access the cloud storage resources, comprising:
- accessing calls to or from the NAS file system for reading of data from, or writing of data to, the non-volatile data store of the NAS device,
- wherein the at least one data file consists of multiple data blocks,
- wherein the non-volatile data store of the NAS device stores the multiple data blocks of the at least one data file;
- wherein the NAS file system of the NAS device controls the reading of data from or the writing of data to the multiple data blocks of the at least one data file, and
- wherein the accessing includes identifying individual blocks or groups of blocks within the multiple data blocks of the at least one data file that the NAS file system of the NAS device reads data from or writes data to;
- based on the accessing, identifying a portion of the multiple data blocks of the at least one data file that satisfies a data storage criteria;
- storing content of the at least one data file to a content index;
- and
- automatically transferring the identified portion of the multiple data blocks for storage by the cloud storage resources.