code: func (d *driver) URLFor(context context.Context, path string, options map[string]interface{}) (string, error) {
  	if d.privateKey == nil {
  		return "", storagedriver.ErrUnsupportedMethod{}
  	}
  
  	name := d.pathToKey(path)
  	methodString := "GET"
  	method, ok := options["method"]
  	if ok {
  		methodString, ok = method.(string)
  		if !ok || (methodString != "GET" && methodString != "HEAD") {
  			return "", storagedriver.ErrUnsupportedMethod{}
  		}
  	}
  
  	expiresTime := time.Now().Add(20 * time.Minute)
  	expires, ok := options["expiry"]
  	if ok {
  		et, ok := expires.(time.Time)
  		if ok {
  			expiresTime = et
  		}
  	}
  
  	opts := &storage.SignedURLOptions{
  		GoogleAccessID: d.email,
  		PrivateKey:     d.privateKey,
  		Method:         methodString,
  		Expires:        expiresTime,
  	}
  	return storage.SignedURL(d.bucket, name, opts)
  }
docs: // URLFor returns a URL which may be used to retrieve the content stored at
  // the given path, possibly using the given options.
  // Returns ErrUnsupportedMethod if this driver has no privateKey