| Index: gae/pre_cacher.py
|
| diff --git a/gae/pre_cacher.py b/gae/pre_cacher.py
|
| index fbefe7b460631c8a737524edb995f99787949c1a..79074938b3cb72d504d1584989c41d2f8aefe78b 100644
|
| --- a/gae/pre_cacher.py
|
| +++ b/gae/pre_cacher.py
|
| @@ -6,37 +6,41 @@ from google.appengine.api import urlfetch
|
| import webapp2
|
|
|
| import cache
|
| +import cloudstorage
|
| import config
|
| +import content_type
|
| +from urlparse import urlparse
|
|
|
| class PreCacherFromUrl(webapp2.RequestHandler):
|
| #
|
| - # For local testing (since /gs paths are not available), precache the
|
| - # meta-file (e.g. for revision 155046) from your browser:
|
| + # For local testing, put the revision file and the zip archive
|
| + # into the local GS server from your browser (e.g. for revision 155046):
|
| #
|
| - # http://localhost:8080/precache_url?path=revs/@155046&url=http://commondatastorage.googleapis.com/chrome-devtools-frontend/revs/@155046
|
| + # http://localhost:8080/precache_url?url=http://commondatastorage.googleapis.com/chrome-devtools-frontend/revs/@155046
|
| #
|
| # Then pre-cache the archive (you need to look up MD5 from the meta-file from the 'revs' metafile):
|
| #
|
| - # http://localhost:8080/precache_url?path=zips/e4eb112917d276dac7b43affa30422143f37fd26.zip&url=http://commondatastorage.googleapis.com/chrome-devtools-frontend/zips/e4eb112917d276dac7b43affa30422143f37fd26.zip
|
| + # http://localhost:8080/precache_url?url=http://commondatastorage.googleapis.com/chrome-devtools-frontend/zips/e4eb112917d276dac7b43affa30422143f37fd26.zip
|
| #
|
| # Then this works: http://localhost:8080/serve_rev/@155046/devtools.html
|
| #
|
| - # Remember to re-populate the cache after the server restarts (e.g. after
|
| - # changing source files).
|
| - #
|
| def get(self):
|
| if config.IS_DEV_APP_SERVER:
|
| - path = self.request.GET['path']
|
| url = self.request.GET['url']
|
| self.response.headers['Content-Type'] = 'text/plain'
|
| - self.response.write(precache_url(path, url))
|
| + self.response.write(precache_url(url))
|
| else:
|
| self.abort(403)
|
|
|
| -def precache_url(file_name, url):
|
| +def precache_url(url):
|
| result = urlfetch.fetch(url)
|
| + file_name = urlparse(url).path
|
| if result.status_code == 200:
|
| - cache.set_content(file_name, result.content)
|
| - return 'Cached %s as %s' % (url, file_name)
|
| + gcs_file = cloudstorage.open(file_name,
|
| + 'w',
|
| + content_type=content_type.from_path(file_name))
|
| + gcs_file.write(result.content)
|
| + gcs_file.close()
|
| + return 'Saved %s as %s' % (url, file_name)
|
| else:
|
| return 'Error: %d for %s' % (result.status_code, url)
|
|
|