版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
详细解答可以参考官方帮助文档
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);