move method
Copy then delete the source. Not atomic across the two steps.
Implementation
Future<void> move(String sourcePath, String destPath) async {
validateKey(sourcePath);
validateKey(destPath);
await _backend.copy(key(sourcePath), key(destPath));
await _backend.delete(key(sourcePath));
}