Пример #1
0
        private ListBucketResponse FetchBatch()
        {
            ListBucketResponse listResp = svc.listBucket(bucket, prefix, marker, first ? 10 : 250, null);

            listResp.Connection.Close();
            first = false;
            return(listResp);
        }
Пример #2
0
        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;
            }
        }
Пример #3
0
        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;
                }
            }
        }