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.