Viewing Bucket Logging Configuration
If you have any questions during development, post them on the Issues page of GitHub.
You can call get_bucket_logging_configuration to view the logging configuration of a bucket. Sample code is as follows:
Parameter Description
Field |
Type |
Mandatory or Optional |
Description |
---|---|---|---|
option |
The context of the bucket. For details, see Configuring option. |
Mandatory |
Bucket parameter |
logging_message_data |
bucket_logging_message * |
Mandatory |
Current bucket logging management configuration. For details about bucket_logging_message, see the following table. |
handler |
obs_response_handler* |
Mandatory |
Callback function |
callback_data |
void * |
Optional |
Callback data |
The following table describes the bucket logging management configuration structure bucket_logging_message.
Field |
Type |
Description |
---|---|---|
target_bucket |
char * |
When enabling the logging function, the owner of the bucket being logged can specify a target bucket to store the generated log files. Log files generated for multiple buckets can be stored in the same target bucket. If you do so, you need to specify different target_prefix to classify logs for different buckets. |
target_bucket_size |
int |
Total size of target_bucket |
target_prefix |
char * |
You can specify a prefix using this element so that log files are named with this prefix. |
target_prefix_size |
int |
Total size of target_prefix |
acl_grants |
obs_acl_grant * |
Pointer to the permission information structure. |
acl_grant_count |
int * |
Pointer to the number of returned acl_grants |
agency |
char * |
Name of the agency created by the owner of the logging bucket for uploading log files by OBS |
agency_size |
int |
Total size of agency |
Sample Code
static void test_get_bucket_logging_configuration() { obs_status ret_status = OBS_STATUS_BUTT; // Create and initialize option. obs_options option; init_obs_options(&option); option.bucket_options.host_name = "<your-endpoint>"; option.bucket_options.bucket_name = "<Your bucketname>"; // 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 ACCESS_KEY_ID and SECRET_ACCESS_KEY. // Obtain an AK/SK pair on the management console. For details, see https://support.huaweicloud.com/eu/usermanual-ca/ca_01_0003.html. option.bucket_options.access_key = getenv("ACCESS_KEY_ID"); option.bucket_options.secret_access_key = getenv("SECRET_ACCESS_KEY"); // Set response callback function. obs_response_handler response_handler = { &response_properties_callback, &response_complete_callback }; // Initialize the logging configuration structure. bucket_logging_message logging_message; init_bucket_get_logging_message(&logging_message); // Obtain bucket logs. get_bucket_logging_configuration(&option, &response_handler, &logging_message, &ret_status); if (OBS_STATUS_OK == ret_status) { if (logging_message.target_bucket) { printf("Target_Bucket: %s\n", logging_message.target_bucket); if ( logging_message.target_prefix) { printf("Target_Prefix: %s\n", logging_message.target_prefix); } if (logging_message.agency && logging_message.agency[0] != '\0') { printf(" Agency: %s\n", logging_message.agency); } print_grant_info(*logging_message.acl_grant_count, logging_message.acl_grants); } else { printf("Service logging is not enabled for this bucket.\n"); } } else { printf("get bucket logging faied(%s).\n", obs_get_status_name(ret_status)); } // Destroy the logging configuration structure. destroy_logging_message(&logging_message); }
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.