Help Center/ Object Storage Service/ SDK Reference/ iOS/ Lifecycle Management/ Setting Lifecycle Rules
Updated on 2024-05-08 GMT+08:00
Setting Lifecycle Rules
You can call setBucketLifecycle to set lifecycle rules for a bucket.
Setting an Object Transition Policy
Sample code:
static OBSClient *client; NSString *endPoint = @"your-endpoint"; // Hard-coded or plaintext AK/SK are risky. For security purposes, encrypt your AK/SK and store them in the configuration file or environment variables. In this example, the AK/SK are stored in environment variables for identity authentication. Before running this example, configure environment variables AccessKeyID and SecretAccessKey. // Obtain an AK/SK pair on the management console. For details, see https://support.huaweicloud.com/eu/usermanual-ca/ca_01_0003.html. char* ak_env = getenv("AccessKeyID"); char* sk_env = getenv("SecretAccessKey"); NSString *AK = [NSString stringWithUTF8String:ak_env]; NSString *SK = [NSString stringWithUTF8String:sk_env]; // Initialize identity authentication. OBSStaticCredentialProvider *credentialProvider = [[OBSStaticCredentialProvider alloc] initWithAccessKey:AK secretKey:SK]; //Initialize service configuration. OBSServiceConfiguration *conf = [[OBSServiceConfiguration alloc] initWithURLString:endPoint credentialProvider:credentialProvider]; // Initialize an instance of OBSClient. client = [[OBSClient alloc] initWithConfiguration:conf]; // Set lifecycle rules. OBSLifecycleRule *rule = [[OBSLifecycleRule alloc] initWithID:@"delete-2-days" prefix:@"test/" status:OBSLifecycleStatusEnabled]; // Configure objects to be transitioned to OBS Infrequent Access 30 days after creation. OBSLifecycleTransition* transitionStandard = [[OBSLifecycleTransition alloc]initWithDays:[NSNumber numberWithInteger:30] storageClass:OBSStorageClassStandardIA]; // Configure objects to be transitioned to a specific storage class 60 days after creation. OBSLifecycleTransition* transitionGlacier= [[OBSLifecycleTransition alloc]initWithDays:[NSNumber numberWithInteger:60] storageClass:OBSStorageClassGlacier]; // Configure objects to be transitioned to OBS Standard after being noncurrent for 30 days. OBSLifecycleNoncurrentVersionTransition* noncurrentTransistionStandard = [[OBSLifecycleNoncurrentVersionTransition alloc]initWithDays:[NSNumber numberWithInteger:30] storageClass:OBSStorageClassStandardIA]; //Configure objects to be transitioned to OBS after being noncurrent for 60 days. OBSLifecycleNoncurrentVersionTransition* noncurrentTransistionGlacier= [[OBSLifecycleNoncurrentVersionTransition alloc]initWithDays:[NSNumber numberWithInteger:60] storageClass:OBSStorageClassGlacier]; [rule.transitionList addObject:transitionStandard]; [rule.transitionList addObject:transitionGlacier]; [rule.noncurrentVersionTransitionList addObject:noncurrentTransistionStandard]; [rule.noncurrentVersionTransitionList addObject:noncurrentTransistionGlacier]; rule.expiration = expiration; rule.noncurrentVersionExpiration = noncurrentExpiration; OBSSetBucketLifecycleRequest *request = [[OBSSetBucketLifecycleRequest alloc]initWithBucketName:@"bucketname" ]; [request.lifecycleRuleList addObject: rule]; OBSLifecycleRule* rule2 = [rule copy]; rule2.ID = @"123"; rule2.prefix = @"test1/"; [request.lifecycleRuleList addObject: rule2]; [client setBucketLifecycle:request completionHandler:^(OBSSetBucketLifecycleResponse *response, NSError *error){ NSLog(@"%@",response); }];
Setting an Object Expiration Time
Sample code:
static OBSClient *client; NSString *endPoint = @"your-endpoint"; // Hard-coded or plaintext AK/SK are risky. For security purposes, encrypt your AK/SK and store them in the configuration file or environment variables. In this example, the AK/SK are stored in environment variables for identity authentication. Before running this example, configure environment variables AccessKeyID and SecretAccessKey. // Obtain an AK/SK pair on the management console. For details, see https://support.huaweicloud.com/eu/usermanual-ca/ca_01_0003.html. char* ak_env = getenv("AccessKeyID"); char* sk_env = getenv("SecretAccessKey"); NSString *AK = [NSString stringWithUTF8String:ak_env]; NSString *SK = [NSString stringWithUTF8String:sk_env]; // Initialize identity authentication. OBSStaticCredentialProvider *credentialProvider = [[OBSStaticCredentialProvider alloc] initWithAccessKey:AK secretKey:SK]; //Initialize service configuration. OBSServiceConfiguration *conf = [[OBSServiceConfiguration alloc] initWithURLString:endPoint credentialProvider:credentialProvider]; // Initialize an instance of OBSClient. client = [[OBSClient alloc] initWithConfiguration:conf]; // Specify the prefix. OBSLifecycleRule *rule = [[OBSLifecycleRule alloc] initWithID:@"delete-2-days" prefix:@"test/" status:OBSLifecycleStatusEnabled]; // Set the new expiration time. OBSLifecycleExpiration* expiration = [[OBSLifecycleExpiration alloc]initWithDays:[NSNumber numberWithInteger:61]]; // Set the new expiration time for noncurrent versions. OBSLifecycleNoncurrentVersionExpiration* noncurrentExpiration = [[OBSLifecycleNoncurrentVersionExpiration alloc]initWithDays:[NSNumber numberWithInteger:61]]; [rule.transitionList addObject:transitionStandard]; [rule.transitionList addObject:transitionGlacier]; [rule.noncurrentVersionTransitionList addObject:noncurrentTransistionStandard]; [rule.noncurrentVersionTransitionList addObject:noncurrentTransistionGlacier]; rule.expiration = expiration; rule.noncurrentVersionExpiration = noncurrentExpiration; OBSSetBucketLifecycleRequest *request = [[OBSSetBucketLifecycleRequest alloc]initWithBucketName:@"bucketname" ]; [request.lifecycleRuleList addObject: rule]; OBSLifecycleRule* rule2 = [rule copy]; rule2.ID = @"123"; rule2.prefix = @"test1/"; [request.lifecycleRuleList addObject: rule2]; [client setBucketLifecycle:request completionHandler:^(OBSSetBucketLifecycleResponse *response, NSError *error){ NSLog(@"%@",response); }];
Parent topic: Lifecycle Management
What is your overall rating for this page?
0
1
2
3
4
5
6
7
8
9
10
Very dissatisfiedVery satisfied
Thank you very much for your feedback. We will continue working to improve the documentation.
The system is busy. Please try again later.