private static void UnmarshallResult(XmlUnmarshallerContext context, GetLifecycleConfigurationResponse response) { int originalDepth = context.CurrentDepth; int targetDepth = originalDepth + 1; if (context.IsStartOfDocument) { targetDepth += 2; } while (context.Read()) { if (context.IsStartElement || context.IsAttribute) { if (context.TestExpression("Rule", targetDepth)) { response.Configuration.Rules.Add(RulesItemUnmarshaller.Instance.Unmarshall(context)); continue; } } else if (context.IsEndElement && context.CurrentDepth < originalDepth) { return; } } return; }
public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context) { GetLifecycleConfigurationResponse getLifecycleConfigurationResponse = new GetLifecycleConfigurationResponse(); while (context.Read()) { if (context.get_IsStartElement()) { UnmarshallResult(context, getLifecycleConfigurationResponse); } } return(getLifecycleConfigurationResponse); }
private static void UnmarshallResult(XmlUnmarshallerContext context, GetLifecycleConfigurationResponse response) { int currentDepth = context.get_CurrentDepth(); int num = currentDepth + 1; if (context.get_IsStartOfDocument()) { num += 2; } while (context.Read()) { if (context.get_IsStartElement() || context.get_IsAttribute()) { if (context.TestExpression("Rule", num)) { response.Configuration.Rules.Add(RulesItemUnmarshaller.Instance.Unmarshall(context)); } } else if (context.get_IsEndElement() && context.get_CurrentDepth() < currentDepth) { break; } } }
public static void Main(string[] args) { // create the AWS S3 client AmazonS3Client s3 = AWSS3Factory.getS3Client(); String bucketName = String.Join("-", AWSS3Factory.S3_BUCKET, DateTime.Now.ToString("yyyyMMddHHmmss")); //************************// // 1. Create a bucket // //************************// Console.Write(string.Format(" [*] Creating bucket '{0}'... ", bucketName)); PutBucketResponse pbRes = s3.PutBucket(bucketName); if (pbRes.HttpStatusCode != System.Net.HttpStatusCode.OK) { Console.WriteLine("fail"); Console.ReadLine(); System.Environment.Exit(1); } Console.WriteLine("done"); //*************************************// // 2. Configure bucket lifecycle rules // //*************************************// Console.Write(string.Format(" [*] Updating lifecycle configuration for bucket '{0}'... ", bucketName)); LifecycleConfiguration newConfiguration = new LifecycleConfiguration { Rules = new List <LifecycleRule> { // Rule to delete keys with prefix "Test-" after 5 days new LifecycleRule { Prefix = "Test-", Expiration = new LifecycleRuleExpiration { Days = 5 }, Status = LifecycleRuleStatus.Enabled }, // Rule to delete keys in subdirectory "Logs" after 2 days new LifecycleRule { Prefix = "Logs/", Expiration = new LifecycleRuleExpiration { Days = 2 }, Id = "log-file-removal", Status = LifecycleRuleStatus.Enabled } } }; PutLifecycleConfigurationRequest plcReq = new PutLifecycleConfigurationRequest { BucketName = bucketName, Configuration = newConfiguration }; PutLifecycleConfigurationResponse plcRes = s3.PutLifecycleConfiguration(plcReq); if (plcRes.HttpStatusCode != System.Net.HttpStatusCode.OK) { Console.WriteLine("fail"); Console.ReadLine(); System.Environment.Exit(1); } Console.WriteLine("done"); //************************************************// // 3. Retrieve the bucket lifecycle configuration // //************************************************// Console.Write(string.Format(" [*] Retrieving current lifecycle configuration for bucket '{0}'... ", bucketName)); GetLifecycleConfigurationResponse glcRes = s3.GetLifecycleConfiguration(bucketName); if (glcRes.HttpStatusCode != System.Net.HttpStatusCode.OK) { Console.WriteLine("fail"); Console.ReadLine(); System.Environment.Exit(1); } Console.WriteLine("done"); Console.WriteLine(String.Format(" [x] Configuration contains {0} rules", glcRes.Configuration.Rules.Count)); foreach (LifecycleRule rule in glcRes.Configuration.Rules) { Console.WriteLine(" [x] Rule:"); Console.WriteLine(" [x] Prefix = " + rule.Prefix); Console.WriteLine(" [x] Expiration (days) = " + rule.Expiration.Days); Console.WriteLine(" [x] Id = " + rule.Id); Console.WriteLine(" [x] Status = " + rule.Status); } //**********************************************// // 4. Delete the bucket lifecycle configuration // //**********************************************// Console.Write(String.Format(" [*] Deleting current lifecycle configuration for bucket '{0}'... ", bucketName)); DeleteLifecycleConfigurationResponse dlcRes = s3.DeleteLifecycleConfiguration(bucketName); if (dlcRes.HttpStatusCode != System.Net.HttpStatusCode.NoContent) { Console.WriteLine("fail"); Console.ReadLine(); System.Environment.Exit(1); } Console.WriteLine("done"); Console.Write(String.Format(" [*] Verifying current lifecycle rules for bucket '{0}' are empty... ", bucketName)); LifecycleConfiguration configuration = s3.GetLifecycleConfiguration(bucketName).Configuration; if (configuration.Rules.Count != 0) { Console.WriteLine("fail"); Console.ReadLine(); System.Environment.Exit(1); } Console.WriteLine("done"); //************************// // 5. Delete the bucket // //************************// Console.Write(String.Format(" [*] Deleting bucket '{0}'... ", bucketName)); DeleteBucketResponse dbRes = s3.DeleteBucket(bucketName); if (dbRes.HttpStatusCode != System.Net.HttpStatusCode.NoContent) { Console.WriteLine("fail"); Console.ReadLine(); System.Environment.Exit(1); } Console.WriteLine("done"); Console.WriteLine(" [*] Example is completed. Press any key to exit..."); Console.ReadLine(); }