We address the problem of correcting erasures with Reed-Solomon codes under communication constraints, known as the repair problem. A repair scheme is called optimal if the number of field symbols communicated to the data center meets the lower cut-set bound on the repair bandwidth. We present a construction of RS codes that affords an optimal scheme for the repair of a single failed node from any number of helper nodes. We also present a lower bound on the capacity of the node (sub-packetization) and argue that the constructed codes are order-optimal for growing block length. Finally, we present a family of RS codes that affords optimal repair of any number of erasures from any number of helper nodes.