public List <JungleDiskBucket> GetBucketList(BucketFilter filter) { string accessKeyHash = Crypto.HexString((MD5.Create()).ComputeHash(Encoding.Default.GetBytes(s3.accessKey))); string legacyAccessKeyRegexString = accessKeyHash.Replace("0", "0?"); // Some legacy buckets weren't padded out properly. Regex advancedBucketRegex = new Regex("jd2-" + accessKeyHash + "-(us|eu)"); //"jd2-[0-9a-f]{32}-(us|eu)"); Regex legacyBucketRegex = new Regex(legacyAccessKeyRegexString + "-(.+)"); //"[0-9a-f]{16,32}-(.*)"); List <JungleDiskBucket> bucketList = new List <JungleDiskBucket>(); List <string> rawBucketList = s3.GetBucketList(); foreach (string bucketName in rawBucketList) { if (advancedBucketRegex.IsMatch(bucketName)) { if (filter == BucketFilter.AllBuckets || filter == BucketFilter.AdvancedOnly) { AddSubBuckets(bucketName, bucketList); } } else if (legacyBucketRegex.IsMatch(bucketName)) // Legacy bucket { if (filter == BucketFilter.AllBuckets || filter == BucketFilter.LegacyOnly) { bucketList.Add(new JungleDiskBucket(BucketType.Legacy, bucketName, bucketName, bucketName.Substring(bucketName.IndexOf('-') + 1))); } } else // Compatibility { if (filter == BucketFilter.AllBuckets || filter == BucketFilter.CompatOnly) { bucketList.Add(new JungleDiskBucket(BucketType.Compatibility, bucketName, bucketName, bucketName)); } } } return(bucketList); }
public List<JungleDiskBucket> GetBucketList(BucketFilter filter) { string accessKeyHash = Crypto.HexString((MD5.Create()).ComputeHash(Encoding.Default.GetBytes(s3.accessKey))); string legacyAccessKeyRegexString = accessKeyHash.Replace("0", "0?"); // Some legacy buckets weren't padded out properly. Regex advancedBucketRegex = new Regex("jd2-"+accessKeyHash+"-(us|eu)");//"jd2-[0-9a-f]{32}-(us|eu)"); Regex legacyBucketRegex = new Regex(legacyAccessKeyRegexString + "-(.+)"); //"[0-9a-f]{16,32}-(.*)"); List<JungleDiskBucket> bucketList = new List<JungleDiskBucket>(); List<string> rawBucketList = s3.GetBucketList(); foreach (string bucketName in rawBucketList) if (advancedBucketRegex.IsMatch(bucketName)) { if (filter == BucketFilter.AllBuckets || filter == BucketFilter.AdvancedOnly) AddSubBuckets(bucketName, bucketList); } else if(legacyBucketRegex.IsMatch(bucketName)) // Legacy bucket { if (filter == BucketFilter.AllBuckets || filter == BucketFilter.LegacyOnly) bucketList.Add(new JungleDiskBucket(BucketType.Legacy, bucketName, bucketName, bucketName.Substring(bucketName.IndexOf('-')+1))); } else // Compatibility { if (filter == BucketFilter.AllBuckets || filter == BucketFilter.CompatOnly) bucketList.Add(new JungleDiskBucket(BucketType.Compatibility, bucketName, bucketName, bucketName)); } return bucketList; }