implement PutReader with metadata by @reedobrien +go fmt