+ if filename in self.cache:
+ fp = open(os.path.join(self.cachedir, filename), 'rb')
+ return fp.read()
+ else:
+ k = Key(self.bucket)
+ k.key = self.path + filename
+ data = k.get_contents_as_string()
+ fp = open(os.path.join(self.cachedir, filename), 'wb')
+ fp.write(data)
+ fp.close()
+ self.cache[filename] = True
+ return data