tencent cloud

Feedback

Restoring Archived Objects

Last updated: 2022-01-23 14:17:47

    Overview

    This document provides an overview of APIs and SDK code samples related to restoring an archived object.

    API Operation Description
    POST Object restore Restoring an archived object Restores an archived object for access.

    Restoring an Archived Object

    Description

    This API is used to restore an archived object for access.

    Method prototype

    cos_status_t *cos_post_object_restore(const cos_request_options_t *options,
                                        const cos_string_t *bucket, 
                                        const cos_string_t *object,
                                        cos_object_restore_params_t *restore_params,
                                        cos_table_t *headers,
                                        cos_table_t *params,
                                        cos_table_t **resp_headers);
    

    Parameter description

    Parameter Description Type
    options COS request options Struct
    bucket Bucket name in the format of BucketName-APPID String
    object Object name String
    restore_params Parameters for the Post Object Restore operation Struct
    days The number of days before a temporary copy restored using Post Object Restore expires Int
    tier Specifies one of the three CAS restoration modes for Post Object Restore: Expedited, Standard, Bulk String
    headers Headers attached to the COS request Struct
    params Parameters for the COS request operation Struct
    resp_headers Returns the HTTP response headers Struct

    Response description

    Response Parameter Description Type
    code Error code Int
    error_code Error code content String
    error_msg Error code description String
    req_id Request message ID String

    Sample

    #include "cos_http_io.h"
    #include "cos_api.h"
    #include "cos_log.h"
    // `endpoint` is the COS access domain name. For more information, see https://www.tencentcloud.com/document/product/436/6224.
    static char TEST_COS_ENDPOINT[] = "cos.ap-guangzhou.myqcloud.com";
    // A developer-owned secret ID/key used for the project. It can be obtained at https://console.tencentcloud.com/cam/capi.
    static char *TEST_ACCESS_KEY_ID;                // Your SecretId
    static char *TEST_ACCESS_KEY_SECRET;            // Your SecretKey
    // A unique user-level resource identifier for COS access. It can be obtained at https://console.tencentcloud.com/cam/capi.
    static char TEST_APPID[] = "<APPID>";    // Your APPID
    // COS bucket name, in the format of [bucket]-[appid], for example `mybucket-1253666666`. It can be obtained at https://console.tencentcloud.com/cos5/bucket.
    static char TEST_BUCKET_NAME[] = "<bucketname-appid>";    
    void log_status(cos_status_t *s)
    {
      cos_warn_log("status->code: %d", s->code);
      if (s->error_code) cos_warn_log("status->error_code: %s", s->error_code);
      if (s->error_msg) cos_warn_log("status->error_msg: %s", s->error_msg);
      if (s->req_id) cos_warn_log("status->req_id: %s", s->req_id);
    }
    void init_test_config(cos_config_t *config, int is_cname)
    {
      cos_str_set(&config->endpoint, TEST_COS_ENDPOINT);
      cos_str_set(&config->access_key_id, TEST_ACCESS_KEY_ID);
      cos_str_set(&config->access_key_secret, TEST_ACCESS_KEY_SECRET);
      cos_str_set(&config->appid, TEST_APPID);
      config->is_cname = is_cname;
    }
    void init_test_request_options(cos_request_options_t *options, int is_cname)
    {
      options->config = cos_config_create(options->pool);
      init_test_config(options->config, is_cname);
      options->ctl = cos_http_controller_create(options->pool, 0);
    }
    void test_object_restore()
    {
      cos_pool_t *p = NULL;
      cos_string_t bucket;
      cos_string_t object;
      int is_cname = 0;
      cos_table_t *resp_headers = NULL;
      cos_request_options_t *options = NULL;
      cos_status_t *s = NULL;
       cos_pool_create(&p, NULL);
      options = cos_request_options_create(p);
      init_test_request_options(options, is_cname);
      cos_str_set(&bucket, TEST_BUCKET_NAME);
      cos_str_set(&object, "test_restore.dat");
       cos_object_restore_params_t *restore_params = cos_create_object_restore_params(p);
      restore_params->days = 30;
      cos_str_set(&restore_params->tier, "Standard");
      s = cos_post_object_restore(options, &bucket, &object, restore_params, NULL, NULL, &resp_headers);
      log_status(s);
       cos_pool_destroy(p);
    }
    int main(int argc, char *argv[])
    {
      // Get SecretId and SecretKey from environment variables
      TEST_ACCESS_KEY_ID     = getenv("COS_SECRETID");
      TEST_ACCESS_KEY_SECRET = getenv("COS_SECRETKEY");
        if (cos_http_io_initialize(NULL, 0) != COSE_OK) {
         exit(1);
      }
       // Set the log level. Default value: `COS_LOG_WARN`
      cos_log_set_level(COS_LOG_WARN);
       // Set log output. Default value: `stderr`
      cos_log_set_output(NULL);
       test_object_restore();
       cos_http_io_deinitialize();
       return 0;
    }
    
    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support