|  | @@ -9,7 +9,7 @@ It is recommend to use this way
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	cacheDir := "./cache"
 | 
	
		
			
				|  |  |  	defaultImg := "./default.jpg"
 | 
	
		
			
				|  |  | -	http.Handle("/avatar/", avatar.HttpHandler(cacheDir, defaultImg))
 | 
	
		
			
				|  |  | +	http.Handle("/avatar/", avatar.CacheServer(cacheDir, defaultImg))
 | 
	
		
			
				|  |  |  */
 | 
	
		
			
				|  |  |  package avatar
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -135,12 +135,12 @@ func (this *Avatar) UpdateTimeout(timeout time.Duration) error {
 | 
	
		
			
				|  |  |  	return err
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -type avatarHandler struct {
 | 
	
		
			
				|  |  | +type service struct {
 | 
	
		
			
				|  |  |  	cacheDir string
 | 
	
		
			
				|  |  |  	altImage string
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -func (this *avatarHandler) mustInt(r *http.Request, defaultValue int, keys ...string) int {
 | 
	
		
			
				|  |  | +func (this *service) mustInt(r *http.Request, defaultValue int, keys ...string) int {
 | 
	
		
			
				|  |  |  	var v int
 | 
	
		
			
				|  |  |  	for _, k := range keys {
 | 
	
		
			
				|  |  |  		if _, err := fmt.Sscanf(r.FormValue(k), "%d", &v); err == nil {
 | 
	
	
		
			
				|  | @@ -150,7 +150,7 @@ func (this *avatarHandler) mustInt(r *http.Request, defaultValue int, keys ...st
 | 
	
		
			
				|  |  |  	return defaultValue
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -func (this *avatarHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 | 
	
		
			
				|  |  | +func (this *service) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 | 
	
		
			
				|  |  |  	urlPath := r.URL.Path
 | 
	
		
			
				|  |  |  	hash := urlPath[strings.LastIndex(urlPath, "/")+1:]
 | 
	
		
			
				|  |  |  	size := this.mustInt(r, 80, "s", "size") // default size = 80*80
 | 
	
	
		
			
				|  | @@ -183,9 +183,9 @@ func (this *avatarHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -// http.Handle("/avatar/", avatar.HttpHandler("./cache"))
 | 
	
		
			
				|  |  | -func HttpHandler(cacheDir string, defaultImgPath string) http.Handler {
 | 
	
		
			
				|  |  | -	return &avatarHandler{
 | 
	
		
			
				|  |  | +// http.Handle("/avatar/", avatar.CacheServer("./cache"))
 | 
	
		
			
				|  |  | +func CacheServer(cacheDir string, defaultImgPath string) http.Handler {
 | 
	
		
			
				|  |  | +	return &service{
 | 
	
		
			
				|  |  |  		cacheDir: cacheDir,
 | 
	
		
			
				|  |  |  		altImage: defaultImgPath,
 | 
	
		
			
				|  |  |  	}
 |