private ListBucketResponse FetchBatch() { ListBucketResponse listResp = svc.listBucket(bucket, prefix, marker, first ? 10 : 250, null); listResp.Connection.Close(); first = false; return(listResp); }
public IterativeList(string bucket, string prefix) { this.bucket = bucket; this.prefix = prefix; this.regex = null; iterator = iterativeList(); resp = FetchBatch(); if (resp.Entries.Count == 0) { Count = EntryCount.zero; } else if (resp.Entries.Count == 1) { Count = EntryCount.one; } else { Count = EntryCount.some; } }
private IEnumerable <ListEntry> iterativeList() { while (true) { foreach (ListEntry e in resp.Entries) { if (regex == null || regex.IsMatch(e.Key)) { yield return(e); } } if (resp.IsTruncated) { marker = resp.Entries[resp.Entries.Count - 1].Key; resp = FetchBatch(); } else { yield break; } } }