A method and system that combines efficient caching and buffering to
provide a network file system, that may utilize data stored in one or
more compressed image files of sequentially arranged byte stream data. As
an application requests file opens and file reads of a file system, one
or more drivers convert the block requests into HTTP: byte range requests
or the like in order to retrieve the data from a remote server. As the
data is received, it is reconverted and adjusted to match the
application's request. Sequential block access patterns can be detected
and used to request additional data in a single request, in anticipation
of future block requests, thereby increasing efficiency. Local caching of
received data, including caching after uncompressing received data that
was compressed, further increases efficiency. A compressed file system
format optimized for sequential access is also described that when used,
further improves the efficient data access.