/// <inheritdoc/>
        public async Task <CloudFile> UploadFileAsync(Stream baseStream, string remotePath)
        {
            Logger.Instance.Information($"Uploading '{remotePath}' to {CloudServiceName}. Data size : {baseStream.Length} bytes.");
            ThrowIfNotConnected();

            var fileInfo = await _client.ItemWithPath(remotePath).Content.Request().PutAsync <Item>(baseStream);

            Logger.Instance.Information($"'{remotePath}' uploaded.");
            return(new CloudFile
            {
                Name = fileInfo.Name,
                FullPath = $"{fileInfo.ParentReference.Path}/{fileInfo.Name}",
                LastModificationUtcDate = fileInfo.LastModifiedDateTime.GetValueOrDefault().UtcDateTime
            });
        }