public async Task <LockedStream> OpenLockedStreamAsync(string path, FileAccess access) { var container = await GetContainerAsync(); var blockBlob = container.GetBlockBlobReference(path); var blobStream = access == FileAccess.Read ? await blockBlob.OpenReadAsync() : await blockBlob.OpenWriteAsync(); var result = LockedStream.FromStream(path, blobStream, access, null); return(result); }
public override async Task <LockedStream> OpenLockedStreamAsync(string path, FileAccess access) { if (access == FileAccess.Read && await ExistsAsync(path)) { return(await Disk.OpenLockedStreamAsync(path, access)); } else { var lockedStream = await Disk.OpenLockedStreamAsync(path, FileAccess.ReadWrite); //overwrite access to read/write so we can upload online return(LockedStream.FromStream(path, lockedStream, access, onCloseAction: s => { var(objInfo, compressed) = MapPathToObjectInfo[path]; UploadFileAsync(path, objInfo, compressed, s).Wait(); })); } }