private static List<Task<Uri>> PushFilesToReducers(Dictionary<string, Uri> keysAndUris, IStorage workerStorage)
        {
            var pushFileTasks = new List<Task<Uri>>();
            var regex = new Regex(string.Format("^" + Core.Properties.Settings.Default.MapOutputFileName + "$", @"(?<Key>.+)", "[0-9]+", RegexExtensions.GuidRegexString));
            var uris = workerStorage.ListFiles();
            foreach (var uri in uris)
            {
                var fileName = workerStorage.GetFileName(uri);
                if (regex.IsMatch(fileName))
                {
                    var key = regex.Match(fileName).Groups["Key"].Value;
                    if (keysAndUris.ContainsKey(key))
                    {
                        pushFileTasks.Add(PushFileToReducer(keysAndUris, workerStorage, fileName, key));
                    }
                }
            }

            return pushFileTasks;
        }