Data Processing and Use
Lifecycle Management
BOS supports users to set lifecycle rules for bucket to clear the expired files automatically and save storage space. For files of different prefixes, users can set more rules simultaneously. For the detailed information, please see Lifecycle Management
Set Lifecycle Rule
Lifecycle rules can be set in the following 2 ways:
// 1.String in Json format
String jsonBucketLifecylce = "{\"rule\":[{\"id\":\"yourBucketName/*-DeleteObject\""+",\"status\":\"enabled\""+",\"resource\":[\"yourBucketName/*\"]"+",\"condition\":{\"time\":{\"dateGreaterThan\":\"2018-09-07T00:00:00Z\"}}"+",\"action\":{\"name\":\"DeleteObject\"}}]}";
SetBucketLifecycleRequest request = new SetBucketLifecycleRequest("yourBucketName",jsonBucketLifecylce);
client.setBucketBucketLifecycle(request);
//2.Users only need to specify the specified parameters
List<Rule> rules = new ArrayList<Rule>();
List<String> resource = new ArrayList<String>();
Action action = new Action();
Condition condition = new Condition();
resource.add("yourBucketName/*");
action.setName("DeleteObject");
Time time = new Time();
time.setDateGreaterThan("2018-09-07T00:00:00Z");
condition.setTime(time);
Rule rule = new Rule();
rule.setId("yourBucketName/*-DeleteObject");
rule.setStatus("enabled");
rule.setResource(resource);
rule.setCondition(condition);
rule.setAction(action);
List<String> resource1 = new ArrayList<String>();
Action action1 = new Action();
Condition condition1 = new Condition();
resource1.add("yourBucketName/*");
action1.setName("Transition");
action1.setStorageClass("STANDARD_IA");
Time time1 = new Time();
time1.setDateGreaterThan("2018-09-08T00:00:00Z");
condition1.setTime(time1);
Rule rule1 = new Rule();
rule1.setId("yourBucketName/*-Transition");
rule1.setStatus("enabled");
rule1.setResource(resource1);
rule1.setCondition(condition1);
rule1.setAction(action1);
rules.add(rule1);
rules.add(rule);
SetBucketLifecycleRequest request = new SetBucketLifecycleRequest();
request.withBucketName("yourBucketName");
request.setRuleList(rules);
client.setBucketBucketLifecycle(request);
View Lifecycle Rule
Lifecycle rules in bucket can be viewed via the following codes
GetBucketLifecycleRequest request = new GetBucketLifecycleRequest("yourBucketName");
GetBucketLifecycleResponse response = client.getBucketLifecycle(request);
Delete Lifecycle Rule
Lifecycle rules can be cleared via the following codes:
DeleteBucketLifecycleRequest request = new DeleteBucketLifecycleRequest("yourBucketName");
client.deleteBucketLifecycle(request);
Cross-Origin Resource Sharing
Cross-Origin Resource Sharing (CORS) is a standard cross-origin solution provided by HTML5, and BOS supports CORS standard for cross-origin access currently. For the introduction of cross-origin access, please see Cross-origin Access.
Set CORS Rule
cross-origin rules can be set in the following 2 ways:
// 1.String in Json format
String jsonBucketCors = "{\"corsConfiguration\": [{\"allowedOrigins\":[\"http://*\""+",\"https://*\"]"+",\"allowedMethods\":[\"GET\""+",\"HEAD\""+",\"POST\""+",\"PUT\"]"+",\"allowedHeaders\":[\"*\"]"+",\"allowedExposeHeaders\":[\"ETag\""+",\"Content-Length\""+",\"x-bce-next-append-offset\""+",\"x-bce-object-type\""+",\"x-bce-request-id\"]"+",\"maxAgeSeconds\":1800}]}";
SetBucketCorsRequest request = new SetBucketCorsRequest();
request.setJsonBucketCors(jsonBucketCors);
request.withBucketName("yourBucketName");
client.setBucketBucketCors(request);
// 2.Users only need to specify the specified parameters
SetBucketCorsRequest request = new SetBucketCorsRequest();
request.setBucketName("yourBucketName");
List<CorsConfiguration> corsConfigurations = new ArrayList<CorsConfiguration>();
List<String> allowedOrigins = new ArrayList<String>();
List<AllowedMethods> allowedMethods = new ArrayList<AllowedMethods>();
List<String> allowedHeaders = new ArrayList<String>();
List<String> allowedExposeHeaders = new ArrayList<String>();
CorsConfiguration corsConfiguration = new CorsConfiguration();
CorsConfiguration corsConfiguration1 = new CorsConfiguration();
// AllowedOrigins
allowedOrigins.add("http://www.example.com");
allowedOrigins.add("http://www.example1.com");
allowedMethods.add(AllowedMethods.GET);
allowedMethods.add(AllowedMethods.POST);
allowedMethods.add(AllowedMethods.PUT);
allowedMethods.add(AllowedMethods.DELETE);
// allowedHeaders
allowedHeaders.add("head1");
allowedHeaders.add("head2");
// allowedExposeHeaders
allowedExposeHeaders.add("ETag");
allowedExposeHeaders.add("Content-Length");
allowedExposeHeaders.add("x-bce-next-append-offset");
allowedExposeHeaders.add("x-bce-object-type");
corsConfiguration.setAllowedOrigins(allowedOrigins);
corsConfiguration.setAllowedMethods(allowedMethods);
corsConfiguration.setAllowedHeaders(allowedHeaders);
corsConfiguration.setAllowedExposeHeaders(allowedExposeHeaders);
corsConfiguration.setMaxAgeSeconds(1800);
List<String> allowedOrigins1 = new ArrayList<String>();
List<AllowedMethods> allowedMethods1 = new ArrayList<AllowedMethods>();
List<String> allowedHeaders1 = new ArrayList<String>();
List<String> allowedExposeHeaders1 = new ArrayList<String>();
corsConfigurations.add(corsConfiguration);
// AllowedOrigins
allowedOrigins1.add("allowedOrigin1");
allowedOrigins1.add("allowedOrigin2");
// allowedMethods
allowedMethods1.add(AllowedMethods.GET);
allowedMethods1.add(AllowedMethods.POST);
allowedMethods1.add(AllowedMethods.PUT);
allowedMethods1.add(AllowedMethods.DELETE);
// allowedHeaders
allowedHeaders1.add("head3");
allowedHeaders1.add("head4");
// allowedExposeHeaders
allowedExposeHeaders1.add("ETag");
allowedExposeHeaders1.add("Content-Length");
allowedExposeHeaders1.add("x-bce-next-append-offset");
allowedExposeHeaders1.add("x-bce-object-type");
corsConfiguration1.setAllowedOrigins(allowedOrigins1);
corsConfiguration1.setAllowedMethods(allowedMethods1);
corsConfiguration1.setAllowedHeaders(allowedHeaders1);
corsConfiguration1.setAllowedExposeHeaders(allowedExposeHeaders1);
corsConfiguration1.setMaxAgeSeconds(3600);
corsConfigurations.add(corsConfiguration1);
request.setCorsConfigurationsList(corsConfigurations);
client.setBucketBucketCors(request);
Note:
- Before setting CORS rule through this interface, CORS permission of bucket is set to not allow cross-domain.
- Only one rule file is allowed for each bucket, so the newly uploaded rule file will overwrite the original one.
- The size of CORS rule file is limited to 20KB, so if it is larger than 20KB during the request, an oversize error (400 Bad Request: EntityTooLarge) will be returned.
Get CORS Rule
Cross-origin rules can be obtained in the following 2 ways:
GetBucketCorsRequest request = new GetBucketCorsRequest();
request.setBucketName("yourBucketName");
GetBucketCorsResponse response = client.getBucketCros(request);
Delete CORS Rule
Cross-origin rules can be deleted in the following 2 ways:
DeleteBucketCorsRequest request = new DeleteBucketCorsRequest("yourBucketName");
client.deletebucketCors(request);
Set Access Log
BOS SDK supports recording of request record when users access to bucket as log, including requester, bucket name, request time, request operation, etc. For the detailed functional description of bucket log, see Set Access Log
Enable Bucket Log
- Request parameter
Name | Description | Type | Required or not |
---|---|---|---|
targetbucket | Specify bucket that stores access log | String | Yes |
targetPrefix | Specify the prefix of access log file that is ultimately saved | String | No (it is recommended to fill in to distinguish access logs) |
- Currently, 2 ways are available for users 1.String in Json format 2.Users only need to specify the specified parameters
Log rules can be set in the following 2 ways:
// 1.String in Json format
SetBucketLoggingRequest setBucketLoggingRequest = new SetBucketLoggingRequest();
setBucketLoggingRequest.setBucketName("yourBucketName");
String jsonPutBucketLogging = "{\"targetBucket\":\"yourTargetBucketName\""+",\"targetPrefix\":\"mylog1/\"}";
setBucketLoggingRequest.setJsonPutBucketLogging(jsonPutBucketLogging);
client.setBucketLogging(setBucketLoggingRequest);
// 2.Users only need to specify the specified parameters
SetBucketLoggingRequest request = new SetBucketLoggingRequest();
request.setBucketName("yourBucketName");
request.setTargetBucket("yourTargetBucketName");
request.setTargetPrefix("mylog/");
client.setBucketLogging(request);
View Setting of Bucket Log
Log rules can be obtained in the following ways:
GetBucketLoggingRequest request = new GetBucketLoggingRequest();
request.withBucketName("yourBucketName");
GetBucketLoggingResponse response = client.getBucketLogging(request);
Disable Bucket Log
Log rules can be deleted in the following ways:
DeleteBucketLoggingRequest request = new DeleteBucketLoggingRequest("yourBucketName");
client.deleteBucketLogging(request);