api update: upload

As a side note, nothing uses this function anymore, so it's probably
safe to deprecate and remove it at some point.