开发者社区> 问答> 正文

Media-C-SDK之如何实现常见问题?


OSS MEDIA C SDK和OSS C SDK是啥关系?

  • OSS MEDIA C SDK依赖于OSS C SDK,OSS MEDIA C SDK中的上传和下载等功能是通过调用OSS C SDK的接口实现的。


OSS MEDIA C SDK是否支持windows?

  • 目前还不支持。


是否支持追加写文件?

  • 支持,调用oss_media_file_open时使用“a”模式,然后可以通过多次调用oss_media_file_write接口实现追加写。


什么是role arn?如何获取role arn?

  • role arn表示的是需要扮演角色的id,由阿里云访问控制RAM提供。可以前往访问控制RAM > [backcolor=transparent]角色管理 > 点击已经创建的角色名称 > [backcolor=transparent]基本信息 > [backcolor=transparent]Arn,值类似于:acs:ram::xxxx:role/yyyyy。如果还没有已创建的角色,需要在角色管理页面创建一个新的用户角色,并赋予AliyunSTSAssumeRoleAccess和其他相应角色,更详细的介绍可以参考:RAM的文档


如何运行sample?

  • 修改sample/config.c文件,增加自己的access key id,access key secret,bucket等值,然后编译后,在bin目录下就会出现sample的可执行文件


报错:error:a timeout was reached

  • 检查一下host的值,是否是类似于oss-cn-hangzhou.aliyuncs.com的值。这个是C SDK的一个已知问题,会在后期版本修复。


运行sample时报错:error:Couldn’t resolve host name 和[code=-990, message=HttpIoError]

  • 修改sample/config.c文件,配置您自己的参数值,然后重新编译即可。测试也一样。


客户端和服务端的access key id,access key secret,token配置有啥不同和注意点?

  • 服务端只需要配置access key id和access key secret,这两个值有两种来源:第一个是主账号的AccessKeys,第二个是主账号生成的子账号的AccessKeys。
  • 客户端有两种配置方式,第一种是和服务端一样,只配置主账号或者子账号的access key id,access key secret,第二种是配置access key id,access key secret和token三个值,但这三个值都是服务端通过oss_media_get_token或者oss_media_get_token_from_policy获取到的临时AccessKey和token,有时间期限,超过有效期后,就不能再次使用。


执行sample获取token的时候出现以下错误:http_code=500, error_code=GetSTSTokenError, error_message=Internal Error

  • 原因是安装的libcurl不支持HTTPS协议,导致无法访问sts服务。具体过程是机器上没有安装openssl-devel等ssl的开发包,在编译libcurl的时候找不到ssl,libcurl就自动禁止了HTTPS协议,导致编译出来的libcurl库不支持HTTPS,最终访问STS失败。
  • 解决办法是先安装openssl-devel等ssl开发包,然后重新安装libcurl。在安装libcurl时,当执行完./configure后,检查最后一行的Protocols里包含了HTTPS,如果包含了,就说明正确了。

展开
收起
青衫无名 2017-10-20 10:14:10 1815 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
从 SDK 到编解码:视频直播架构解析 立即下载
跨平台的云服务SDK需要什么 立即下载
一个跨平台的云服务SDK需要什么 立即下载