详情页标题前

腾讯云对象存储存储桶操作

详情页1

简介

本文档提供关于存储桶的基本操作和访问控制列表(ACL)的相关 API 概览以及 SDK 示例代码。注意建议用户 使用临时密钥 调用 SDK,通过临时授权的方式进一步提高 SDK 使用的安全性。申请临时密钥时,请遵循 最小权限指引原则,防止泄漏目标存储桶或对象之外的资源。如果您一定要使用永久密钥,建议遵循 最小权限指引原则 对永久密钥的权限范围进行限制。基本操作

API 操作名 操作描述
PUT Bucket 创建存储桶 在指定账号下创建一个存储桶
DELETE Bucket 删除存储桶 删除指定账号下的空存储桶

检索存储桶及其权限

API 操作名 操作描述
HEAD Bucket 检索存储桶及其权限 检索存储桶是否存在且是否有权限访问

基本操作

创建存储桶

功能说明

在指定账号下创建一个存储桶。

方法原型

cos_status_t *cos_create_bucket(const cos_request_options_t *options,                                 const cos_string_t *bucket,                                 cos_acl_e cos_acl,                                 cos_table_t **resp_headers);

参数说明

参数名称 参数描述 类型
options COS 请求选项 Struct
bucket 存储桶名称,存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 String
cos_acl 允许用户自定义权限。有效值:COS_ACL_PRIVATE(0),COS_ACL_PUBLIC_READ(1),COS_ACL_PUBLIC_READ_WRITE(2)默认值:COS_ACL_PRIVATE(0) Enum
resp_headers 返回 HTTP 响应消息的头域 Struct

返回结果说明

返回结果 描述 类型
code 错误码 Int
error_code 错误码内容 String
error_msg 错误码描述 String
req_id 请求消息 ID String

示例

#include "cos_http_io.h"#include "cos_api.h"#include "cos_log.h"#include 
// endpoint 是 COS 访问域名信息,详情请参见 https://cloud.tencent.com/document/product/436/6224 文档static char TEST_COS_ENDPOINT[] = "cos.ap-guangzhou.myqcloud.com";// 开发者拥有的项目身份ID/密钥,可在 https://console.cloud.tencent.com/cam/capi 页面获取static char *TEST_ACCESS_KEY_ID; //your secret_idstatic char *TEST_ACCESS_KEY_SECRET; //your secret_key// 开发者访问 COS 服务时拥有的用户维度唯一资源标识,用以标识资源,可在 https://console.cloud.tencent.com/cam/capi 页面获取static char TEST_APPID[] = ""; //your appid//the cos bucket name, syntax: [bucket]-[appid], for example: mybucket-1253666666,可在 https://console.cloud.tencent.com/cos5/bucket 查看static char TEST_BUCKET_NAME[] = ""; 
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_create_bucket(){ cos_pool_t *p = NULL; int is_cname = 0; cos_status_t *s = NULL; cos_request_options_t *options = NULL; cos_acl_e cos_acl = COS_ACL_PRIVATE; cos_string_t bucket; cos_table_t *resp_headers;
//初始化请求选项 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);
//创建存储桶 s = cos_create_bucket(options, &bucket, cos_acl, &resp_headers); if (cos_status_is_ok(s)) { printf("create bucket succeeded\n"); } else { printf("create bucket failed\n"); }
//销毁内存池 cos_pool_destroy(p); }
int main(int argc, char *argv[]){ // 通过环境变量获取 SECRETID 和 SECRETKEY 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 log level, default COS_LOG_WARN cos_log_set_level(COS_LOG_WARN);
//set log output, default stderr cos_log_set_output(NULL);
test_create_bucket();
cos_http_io_deinitialize();
return 0;}

删除存储桶

功能说明

删除指定账号下的空存储桶。

方法原型

cos_status_t *cos_delete_bucket(const cos_request_options_t *options,                                const cos_string_t *bucket,                                 cos_table_t **resp_headers);

参数说明

参数名称 参数描述 类型
options COS 请求选项 Struct
bucket 存储桶名称,存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 String
resp_headers 返回 HTTP 响应消息的头域 Struct

返回结果说明

返回结果 描述 类型
code 错误码 Int
error_code 错误码内容 String
error_msg 错误码描述 String
req_id 请求消息 ID String

示例

#include "cos_http_io.h"#include "cos_api.h"#include "cos_log.h"#include 
// endpoint 是 COS 访问域名信息,详情请参见 https://cloud.tencent.com/document/product/436/6224 文档static char TEST_COS_ENDPOINT[] = "cos.ap-guangzhou.myqcloud.com";// 开发者拥有的项目身份ID/密钥,可在 https://console.cloud.tencent.com/cam/capi 页面获取static char *TEST_ACCESS_KEY_ID; //your secret_idstatic char *TEST_ACCESS_KEY_SECRET; //your secret_key// 开发者访问 COS 服务时拥有的用户维度唯一资源标识,用以标识资源,可在 https://console.cloud.tencent.com/cam/capi 页面获取static char TEST_APPID[] = ""; //your appid//the cos bucket name, syntax: [bucket]-[appid], for example: mybucket-1253666666,可在 https://console.cloud.tencent.com/cos5/bucket 查看static char TEST_BUCKET_NAME[] = ""; 
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_delete_bucket(){ cos_pool_t *p = NULL; int is_cname = 0; cos_status_t *s = NULL; cos_request_options_t *options = NULL; cos_string_t bucket; cos_table_t *resp_headers;
//初始化请求选项 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);
//删除存储桶 s = cos_delete_bucket(options, &bucket, &resp_headers); if (cos_status_is_ok(s)) { printf("create bucket succeeded\n"); } else { printf("create bucket failed\n"); }
//销毁内存池 cos_pool_destroy(p); }
int main(int argc, char *argv[]){ // 通过环境变量获取 SECRETID 和 SECRETKEY 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 log level, default COS_LOG_WARN cos_log_set_level(COS_LOG_WARN);
//set log output, default stderr cos_log_set_output(NULL);
test_delete_bucket();
cos_http_io_deinitialize();
return 0;}

判断存储桶是否存在

功能说明

检查存储桶是否存在,此接口实际是调用了HEAD Bucket API来检查对象是否存在的。

方法原型

cos_status_t *cos_check_bucket_exist(const cos_request_options_t *options,                                     const cos_string_t *bucket,                                     cos_bucket_exist_status_e *bucket_exist,                                     cos_table_t **resp_headers)

参数说明

参数名称 参数描述 类型
options COS 请求选项 Struct
bucket 存储桶名称,存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 String
bucket_exist 桶是否存在的枚举值,分为存在、不存在、未知状态(没有head到明确的状态) Enum
resp_headers 返回 HTTP 响应消息的头域 Struct

返回结果说明

返回结果 描述 类型
code 错误码 Int
error_code 错误码内容 String
error_msg 错误码描述 String
req_id 请求消息 ID String

示例

#include "cos_http_io.h"#include "cos_api.h"#include "cos_log.h"#include 
// endpoint 是 COS 访问域名信息,详情请参见 https://cloud.tencent.com/document/product/436/6224 文档static char TEST_COS_ENDPOINT[] = "cos.ap-guangzhou.myqcloud.com";// 开发者拥有的项目身份ID/密钥,可在 https://console.cloud.tencent.com/cam/capi 页面获取static char *TEST_ACCESS_KEY_ID; //your secret_idstatic char *TEST_ACCESS_KEY_SECRET; //your secret_key// 开发者访问 COS 服务时拥有的用户维度唯一资源标识,用以标识资源,可在 https://console.cloud.tencent.com/cam/capi 页面获取static char TEST_APPID[] = ""; //your appid//the cos bucket name, syntax: [bucket]-[appid], for example: mybucket-1253666666,可在 https://console.cloud.tencent.com/cos5/bucket 查看static char TEST_BUCKET_NAME[] = ""; 
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_check_bucket_exist(){ cos_pool_t *pool = NULL; int is_cname = 0; cos_status_t *status = NULL; cos_request_options_t *options = NULL; cos_string_t bucket; cos_table_t *resp_headers = NULL; cos_bucket_exist_status_e bucket_exist;
//创建内存池 cos_pool_create(&pool, NULL);
//初始化请求选项 options = cos_request_options_create(pool); init_test_request_options(options, is_cname);
cos_str_set(&bucket, TEST_BUCKET_NAME);
// 检查桶是否存在 status = cos_check_bucket_exist(options, &bucket, &bucket_exist, &resp_headers); if (bucket_exist == COS_BUCKET_NON_EXIST) { printf("bucket: %.*s non exist.\n", bucket.len, bucket.data); } else if (bucket_exist == COS_BUCKET_EXIST) { printf("bucket: %.*s exist.\n", bucket.len, bucket.data); } else { printf("bucket: %.*s unknown status.\n", bucket.len, bucket.data); log_status(status); }
cos_pool_destroy(pool);}
int main(int argc, char *argv[]){ // 通过环境变量获取 SECRETID 和 SECRETKEY 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 log level, default COS_LOG_WARN cos_log_set_level(COS_LOG_WARN);
//set log output, default stderr cos_log_set_output(NULL);
test_check_bucket_exist();
cos_http_io_deinitialize();
return 0;}



对象存储官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/145440.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云容器服务授权腾讯云售后运维排障同尘科技

    默认情况下腾讯云无法登录集群进行问题排障,如果您需要腾讯云售后协助进行运维排障,请参考以下步骤授予腾讯云运维权限。您有权随时吊销回收授予腾讯云的运维排障权限。 通过控制台授予腾讯云权限 1. 登录 容器服务控制台。2. 在集群管理中选择需要腾讯云协助的集群。3. 在集群详情页,选择授权管理 > 授权腾讯云运维。4. 在集群RBAC设置中,选择赋予腾讯云…

    2023年12月9日
  • 腾讯云对象存储盲水印

    简介 本文档提供关于盲水印的 API 概览以及 SDK 示例代码。 API 操作描述 盲水印 对本地图片添加或提取盲水印并上传至存储桶 盲水印 功能说明 盲水印功能基于腾讯云数据万象,是一种全新的水印模式。 方法原型 def ci_put_object_from_local_file(self, Bucket, LocalFilePath, Key, Ena…

    腾讯云 2023年12月9日
  • 腾讯云轻量应用服务器关机实例云小二

    操作场景 用户需要停止实例服务,或者需要执行关机状态才能修改的配置时,可以关机实例。关机实例相当于本地计算机的关机操作。 注意事项 您可使用系统命令进行关机(如 Windows 系统下的关机和 Linux 系统下的 shutdown 命令),也可使用轻量应用服务器控制台进行关机。推荐在关机时打开控制台查看关机过程,以检查过程中是否出现问题。实例关机后,将无法…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云轻量应用服务器Linux 轻量应用服务器搭建 FTP 服务云小二

    操作场景 Vsftpd(very secure FTP daemon)是众多 Linux 发行版中默认的 FTP 服务器。本文以 CentOS 7.6 64位操作系统的轻量应用服务器为例,使用 vsftpd 软件搭建 Linux 轻量应用服务器的 FTP 服务。 示例软件版本 本文搭建 FTP 服务组成版本如下:Linux 操作系统:本文以系统镜像 Cent…

    2023年12月9日
  • 腾讯云负载均衡调整实例公网配置

    公网类型的负载均衡可按需调整公网网络的带宽或计费模式,实时生效。 限制说明 IPv4 版本的负载均衡:仅标准账户类型支持调整网络配置,传统账户类型不支持。IPv6 版本的负载均衡:标准账户类型和传统账户类型都支持调整网络配置。若您无法确定账户类型,请参见 判断账户类型。 带宽上限 实例计费模式 网络计费模式 带宽上限的可设置范围(Mbps) 包年包月 按带宽…

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。