百度智能云

All Product Document

          Object Storage

          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);
          Previous
          File Management
          Next
          Exception Handling