AWS SDK for .NET Documentation
PutLifecycleConfiguration Method (request)
AmazonAmazon.S3AmazonS3ClientPutLifecycleConfiguration(PutLifecycleConfigurationRequest) Did this page help you?   Yes   No    Tell us about it...
Sets the lifecycle configuration that should be applied to a bucket.
Declaration Syntax
C#
public PutLifecycleConfigurationResponse PutLifecycleConfiguration(
	PutLifecycleConfigurationRequest request
)
Parameters
request (PutLifecycleConfigurationRequest)
The PutLifecycleConfigurationRequest that defines the parameters of the operation.
Return Value
Returns a PutLifecycleConfigurationResponse from S3.
Remarks

If a configuration already exists for the specified bucket, the new configuration will replace the existing configuration.

Lifecycle configuration provides a way to define the lifetime of objects for a keyspace. Objects are automatically deleted after the predefined lifetime.

For more information on lifecycle configurations, refer: http://docs.amazonwebservices.com/AmazonS3/latest/dev/

Examples

This example shows how to Get, Put and Delete bucket Lifecycle Configurations.
A Lifecycle Configuration allows an owner to configure when specific objects should be deleted. Objects to be deleted are specified with a prefix.
The configuration being used has rules that delete objects with a specific prefix and objects in a specific subdirectory.

CopyLifecycleConfiguration samples
// Create a client
AmazonS3Client client = new AmazonS3Client();


// Put sample lifecycle configuration (overwrite an existing configuration)
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 }
        },
        // Rule to delete keys in subdirectory "Logs" after 2 days
        new LifecycleRule
        {
            Prefix = "Logs/",
            Expiration = new LifecycleRuleExpiration  { Days = 2 },
            Id = "log-file-removal"
        }
    }
};
PutLifecycleConfigurationRequest putRequest = new PutLifecycleConfigurationRequest
{
    BucketName = "SampleBucket",
    Configuration = newConfiguration
};
client.PutLifecycleConfiguration(putRequest);


// Retrieve current configuration
GetLifecycleConfigurationRequest getRequest = new GetLifecycleConfigurationRequest
{
    BucketName = "SampleBucket"
};
LifecycleConfiguration configuration = client.GetLifecycleConfiguration(getRequest).Configuration;

Console.WriteLine("Configuration contains {0} rules", configuration.Rules.Count);
foreach (LifecycleRule rule in configuration.Rules)
{
    Console.WriteLine("Rule");
    Console.WriteLine(" Prefix = " + rule.Prefix);
    Console.WriteLine(" Expiration (days) = " + rule.Expiration.Days);
    Console.WriteLine(" Id = " + rule.Id);
    Console.WriteLine(" Status = " + rule.Status);
}


// Put a new configuration and overwrite the existing configuration
configuration.Rules.RemoveAt(0);    // remove first rule
client.PutLifecycleConfiguration(putRequest);

// Delete current configuration
DeleteLifecycleConfigurationRequest deleteRequest = new DeleteLifecycleConfigurationRequest
{
    BucketName = "SampleBucket"
};
client.DeleteLifecycleConfiguration(deleteRequest);


// Retrieve current configuration and verify that it is null
configuration = client.GetLifecycleConfiguration(getRequest).Configuration;
Debug.Assert(configuration == null);
Exceptions

Assembly: AWSSDK (Module: AWSSDK) Version: 1.5.60.0 (1.5.60.0)