详细解答可以参考官方帮助文档
OSS可以通过阿里云STS服务,临时进行授权访问。使用STS时请按以下步骤进行:
用户的client端拿到STS临时凭证后,通过其中安全令牌(SecurityToken)以及临时访问密钥(AccessKeyId, AccessKeySecret)生成oss_request_options。以上传文件为例:
aos_pool_t *p;
oss_request_options_t *options;
aos_status_t *s;
aos_table_t *headers;
aos_table_t *resp_headers;
char *bucket_name = "<您的bucket名字>";
char *object_name = "<您的object名字>";
aos_string_t bucket;
aos_string_t object;
char *data = "<object content>";
aos_list_t buffer;
aos_buf_t *content;
aos_pool_create(&p, NULL);
// init_oss_request_options using sts_token
/* 创建并用STS token初始化options */
options = oss_request_options_create(p);
options->config = oss_config_create(options->pool);
aos_str_set(&options->config->endpoint, "<您的Endpoint>");
aos_str_set(&options->config->access_key_id, "<您的临时AccessKeyId>");
aos_str_set(&options->config->access_key_secret, "<您的临时AccessKeySecret>");
aos_str_set(&options->config->sts_token, "<您的sts_token>");
options->config->is_cname = 0;
options->ctl = aos_http_controller_create(options->pool, 0);
/* 初始化参数 */
aos_str_set(&bucket, bucket_name);
aos_str_set(&object, object_name);
headers = aos_table_make(p, 0);
aos_list_init(&buffer);
content = aos_buf_pack(options->pool, data, strlen(data));
aos_list_add_tail(&content->node, &buffer);
/* 上传文件 */
s = oss_put_object_from_buffer_s(options, &bucket, &object, &buffer, headers, &resp_headers);
if (aos_status_is_ok(s)) {
printf("put object succeeded\n");
} else {
printf("put object failed\n");
}
aos_pool_destroy(p);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。