use Communicator.uploadDir