code: func (t *fingerprintTransformation) Transform(ctx *resources.ResourceTransformationCtx) error {
  
  	h, err := newHash(t.algo)
  	if err != nil {
  		return err
  	}
  
  	io.Copy(io.MultiWriter(h, ctx.To), ctx.From)
  	d, err := digest(h)
  	if err != nil {
  		return err
  	}
  
  	ctx.Data["Integrity"] = integrity(t.algo, d)
  	ctx.AddOutPathIdentifier("." + hex.EncodeToString(d[:]))
  	return nil
  }
docs: // Transform creates a MD5 hash of the Resource content and inserts that hash before
  // the extension in the filename.