set payload default as nil
return int value for bucket usage
check reponse body in error
add gem rest-client in Gemfile
add alias for download
finish demo codes