A storage device comprising: a device processor; a computer interface communicably connected to the device processor, wherein the computer interface is adapted to enable communications between a computer and the device processor; a network interface communicably connected to the processor to enable the device processor to communicate over a network, wherein the processor is adapted to employ the network interface for communications with select file servers to the exclusion of other file servers; and a storage means communicably connected to the device processor, the device processor being adapted to have read and write access to the storage means, and to give the computer read-only access to the storage means via the device processor, wherein when the computer requests a file from the device process, and upon receipt of the file request from the computer, the device processor is adapted to sequentially 1) determine whether the file is cached locally on the storage means, and provide the file to the computer on a read-only basis if the file is cached locally on the storage means, 2) request the file from the select file servers if the file is not cached locally on the storage means, and if the file is obtainable from the select file servers, obtain the file from the select file servers, locally cache the obtained file on the storage means and provide the obtained file to the computer on a read-only basis, and 3) return a file unavailable notice to the computer if the file is not cached locally on the storage means and not obtainable from the select file servers. a device processor; a computer interface communicably connected to the device processor, wherein the computer interface is adapted to enable communications between a computer and the device processor; a network interface communicably connected to the processor to enable the device processor to communicate over a network, wherein the processor is adapted to employ the network interface for communications with select file servers to the exclusion of other file servers; and a storage means communicably connected to the device processor, the device processor being adapted to have read and write access to the storage means, and to give the computer read-only access to the storage means via the device processor, wherein when the computer requests a file from the device process, and upon receipt of the file request from the computer, the device processor is adapted to sequentially 1) determine whether the file is cached locally on the storage means, and provide the file to the computer on a read-only basis if the file is cached locally on the storage means, 2) request the file from the select file servers if the file is not cached locally on the storage means, and if the file is obtainable from the select file servers, obtain the file from the select file servers, locally cache the obtained file on the storage means and provide the obtained file to the computer on a read-only basis, and 3) return a file unavailable notice to the computer if the file is not cached locally on the storage means and not obtainable from the select file servers. 1) determine whether the file is cached locally on the storage means, and provide the file to the computer on a read-only basis if the file is cached locally on the storage means, 2) request the file from the select file servers if the file is not cached locally on the storage means, and if the file is obtainable from the select file servers, obtain the file from the select file servers, locally cache the obtained file on the storage means and provide the obtained file to the computer on a read-only basis, and 3) return a file unavailable notice to the computer if the file is not cached locally on the storage means and not obtainable from the select file servers.