'Read a cached tile.'

def read(self, layer, coord, format):

    key_name = tile_key(layer, coord, format)
    key = self.bucket.get_key(key_name)
    if (key is None):
        return None
    if layer.cache_lifespan:
        t = timegm(strptime(key.last_modified, '%a,    %d    %b    %Y    %H:%M:%S    %Z'))
        if ((time() - t) > layer.cache_lifespan):
            return None
    return key.get_contents_as_string()
