namespace PutBucketLifecycleExample
private static void Main(string[] args)
var ak = Environment.GetEnvironmentVariable("TOS_ACCESS_KEY");
var sk = Environment.GetEnvironmentVariable("TOS_SECRET_KEY");
var bucketName = Environment.GetEnvironmentVariable("TOS_BUCKET");
var endpoint = "https://tos-cn-beijing.volces.com";
var region = "cn-beijing";
using (var client = TosClientBuilder.Builder().SetAk(ak).SetSk(sk)
.SetEndpoint(endpoint).SetRegion(region).BuildV2())
var input = new PutBucketLifecycleInput
Status = StatusType.StatusEnabled,
Expiration = new Expiration { Days = 70 }
Status = StatusType.StatusEnabled,
Expiration = new Expiration
Date = DateTime.UtcNow.Date.AddDays(365)
Status = StatusType.StatusEnabled,
AbortIncompleteMultipartUpload = new AbortIncompleteMultipartUpload
DaysAfterInitiation = 10
Status = StatusType.StatusEnabled,
StorageClass = StorageClassType.StorageClassIa
Status = StatusType.StatusEnabled,
Tags = new[] { new Tag { Key = "key1", Value = "value1" } },
StorageClass = StorageClassType.StorageClassIa
Status = StatusType.StatusEnabled,
Expiration = new Expiration { Days = 70 },
NoncurrentVersionTransitions = new[]
new NonCurrentVersionTransition
StorageClass = StorageClassType.StorageClassIa
NoncurrentVersionExpiration = new NonCurrentVersionExpiration
var output = client.PutBucketLifecycle(input);
Console.WriteLine("Put bucket lifecycle succeeded, request id {0}", output.RequestID);
Console.WriteLine("Status code: {0}", output.StatusCode);
catch (TosServerException ex)
Console.WriteLine("Put bucket lifecycle failed, request id {0}", ex.RequestID);
Console.WriteLine("Status code: {0}, error code: {1}, message: {2}",
ex.StatusCode, ex.Code, ex.Message);
catch (TosClientException ex)
Console.WriteLine("Put bucket lifecycle failed, message: {0}", ex.Message);