use of software.amazon.awssdk.services.s3.model.LifecycleRule in project aws-doc-sdk-examples by awsdocs.
the class LifecycleConfiguration method setLifecycleConfig.
// snippet-start:[s3.java2.manage_lifecycle.main]
public static void setLifecycleConfig(S3Client s3, String bucketName, String accountId) {
try {
// Create a rule to archive objects with the "glacierobjects/" prefix to Amazon S3 Glacier.
LifecycleRuleFilter ruleFilter = LifecycleRuleFilter.builder().prefix("glacierobjects/").build();
Transition transition = Transition.builder().storageClass(TransitionStorageClass.GLACIER).days(0).build();
LifecycleRule rule1 = LifecycleRule.builder().id("Archive immediately rule").filter(ruleFilter).transitions(transition).status(ExpirationStatus.ENABLED).build();
// Create a second rule.
Transition transition2 = Transition.builder().storageClass(TransitionStorageClass.GLACIER).days(0).build();
List<Transition> transitionList = new ArrayList<>();
transitionList.add(transition2);
LifecycleRuleFilter ruleFilter2 = LifecycleRuleFilter.builder().prefix("glacierobjects/").build();
LifecycleRule rule2 = LifecycleRule.builder().id("Archive and then delete rule").filter(ruleFilter2).transitions(transitionList).status(ExpirationStatus.ENABLED).build();
// Add the LifecycleRule objects to an ArrayList.
ArrayList<LifecycleRule> ruleList = new ArrayList<>();
ruleList.add(rule1);
ruleList.add(rule2);
BucketLifecycleConfiguration lifecycleConfiguration = BucketLifecycleConfiguration.builder().rules(ruleList).build();
PutBucketLifecycleConfigurationRequest putBucketLifecycleConfigurationRequest = PutBucketLifecycleConfigurationRequest.builder().bucket(bucketName).lifecycleConfiguration(lifecycleConfiguration).expectedBucketOwner(accountId).build();
s3.putBucketLifecycleConfiguration(putBucketLifecycleConfigurationRequest);
} catch (S3Exception e) {
System.err.println(e.awsErrorDetails().errorMessage());
System.exit(1);
}
}
use of software.amazon.awssdk.services.s3.model.LifecycleRule in project aws-doc-sdk-examples by awsdocs.
the class LifecycleConfiguration method getLifecycleConfig.
// Retrieve the configuration and add a new rule.
public static void getLifecycleConfig(S3Client s3, String bucketName, String accountId) {
try {
GetBucketLifecycleConfigurationRequest getBucketLifecycleConfigurationRequest = GetBucketLifecycleConfigurationRequest.builder().bucket(bucketName).expectedBucketOwner(accountId).build();
GetBucketLifecycleConfigurationResponse response = s3.getBucketLifecycleConfiguration(getBucketLifecycleConfigurationRequest);
// Create a new List.
List<LifecycleRule> newList = new ArrayList<>();
List<LifecycleRule> rules = response.rules();
for (LifecycleRule rule : rules) {
newList.add(rule);
}
// Add a new rule with both a prefix predicate and a tag predicate.
LifecycleRuleFilter ruleFilter = LifecycleRuleFilter.builder().prefix("YearlyDocuments/").build();
Transition transition = Transition.builder().storageClass(TransitionStorageClass.GLACIER).days(3650).build();
LifecycleRule rule1 = LifecycleRule.builder().id("NewRule").filter(ruleFilter).transitions(transition).status(ExpirationStatus.ENABLED).build();
// Add the new rule to the list.
newList.add(rule1);
BucketLifecycleConfiguration lifecycleConfiguration = BucketLifecycleConfiguration.builder().rules(newList).build();
PutBucketLifecycleConfigurationRequest putBucketLifecycleConfigurationRequest = PutBucketLifecycleConfigurationRequest.builder().bucket(bucketName).lifecycleConfiguration(lifecycleConfiguration).expectedBucketOwner(accountId).build();
s3.putBucketLifecycleConfiguration(putBucketLifecycleConfigurationRequest);
} catch (S3Exception e) {
System.err.println(e.awsErrorDetails().errorMessage());
System.exit(1);
}
}
Aggregations