adding file modification support and fault tolerance on upload