Updated on 2024-12-03 GMT+08:00

Truncating an Object

If you have any questions during development, post them on the Issues page of GitHub.

You can call truncate_object to truncate an object. This API applies only to buckets used as parallel file systems.

Parameter Description

Field

Type

Mandatory or Optional

Description

option

The context of the bucket. For details, see Configuring option.

Mandatory

Bucket parameter

key

char *

Mandatory

Object name

object_length

uint64_t

Mandatory

Length to be truncated to

handler

obs_response_handler *

Mandatory

Callback function

callback_data

void *

Optional

Callback data

Sample Code

The following code shows how to truncate an object:

static void test_truncate_object()
{
    obs_status ret_status = OBS_STATUS_BUTT;
    // Object name
    char *key = "put_buffer_test";
    // Length of the object to be truncated to
    uint64_t object_length = 10240;
    // 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/intl/en-us/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
    };
    // Truncate an object.
    truncate_object(&option, key, object_length, &response_handler,&ret_status);
    if (OBS_STATUS_OK == ret_status) {
        printf("truncate_object successfully. \n");
    }
    else
    {
        printf("truncate_object failed.\n", obs_get_status_name(ret_status));
    }
}
  • truncate_object applies only to buckets used as parallel file systems.
  • If the object to be truncated does not exist, an error is reported (HTTP status code 404).