开发者社区> 问答> 正文

C-SDK之如何实现安装?


SDK 安装



要求

  • 开通阿里云OSS服务,并创建了AccessKeyId 和AccessKeySecret。
  • 如果您还没有开通或者还不了解阿里云OSS服务,请登录OSS产品主页了解。
  • 如果还没有创建AccessKeyId和AccessKeySecret,请到阿里云Access Key管理创建Access Key。


Linux



环境依赖


OSS C SDK使用curl进行网络操作,无论是作为客户端还是服务器端,都需要依赖curl。另外,OSS C SDK使用apr、apr-util库解决内存管理以及跨平台问题,使用minixml库解析请求返回的xml,OSS C SDK(Linux)并没有带上这几个外部库,您需要确认这些库已经安装,并且将它们的头文件目录和库文件目录都加入到了项目中。

安装第三方库



Ubuntu/Debian


  • 安装CMake
    执行以下命令安装CMake。sudo apt-get install cmake


  • 安装第三方库
    执行以下命令安装第三方库。sudo apt-get install libcurl4-openssl-dev libapr1-dev libaprutil1-dev libmxml-dev



RedHat/Aliyun/CentOS


  • 安装CMake
    执行以下命令安装CMake。sudo yum install cmake


  • 安装第三方库
    执行以下命令安装第三方库。sudo yum install curl-devel apr-devel apr-util-devel


  • minixml
    请下载系统对应的rpm包:64位: mxml-2.9-1.x86_64.rpm
  • 32位: mxml-2.9-1.i386.rpm

执行以下命令安装minixml: rpm -ivh mxml-2.9-1.x86_64.rpm


SuSE


  • 安装CMake
    执行以下命令安装CMake。zypper install cmake


  • 安装第三方库
    执行以下命令安装第三方库。zypper install libcurl-devel libapr1-devel libapr-util1-devel mxml-devel



其它Linux


  • CMake (建议2.6.0及以上版本)
    请从这里下载,典型的安装方式如下:./configure
  • make
  • make install


注意:
  • 执行./configure时默认是配置安装目录为/usr/local/,如果需要指定安装目录,请使用 ./configure —prefix=/your/install/path/

  • libcurl (建议 7.32.0 及以上版本)
    请从这里下载,并参考libcurl 安装指南安装。典型的安装方式如下:
  1. [backcolor=transparent]./[backcolor=transparent]configure
  2. [backcolor=transparent]make
  3. [backcolor=transparent]make install

注意:
  • 执行./configure时默认是配置安装目录为/usr/local/,如果需要指定安装目录,请使用 ./configure —prefix=/your/install/path/
  • 如果要使用MEDIA-C-SDK,请确保./configure执行完后,最后一行的Protocols里面包含HTTPS,如果没有,请先安装openssl-devel等ssl开发包,然后重新安装libcurl。

  • apr (建议 1.5.2 及以上版本)
    请从这里下载,典型的安装方式如下:./configure
  • make
  • make install


注意:
  • 执行./configure时默认是配置安装目录为/usr/local/,如果需要指定安装目录,请使用 ./configure —prefix=/your/install/path/

  • apr-util (建议 1.5.4 及以上版本)
    请从这里下载,安装时需要注意指定—with-apr选项,典型的安装方式如下:./configure --with-apr=/your/apr/install/path
  • make
  • make install


  • 注意:
  • 执行./configure时默认是配置安装目录为/usr/local/,如果需要指定安装目录,请使用 ./configure —prefix=/your/install/path/
  • 需要通过—with-apr指定apr安装目录,如果apr安装到系统目录下需要指定—with-apr=/usr/local/apr/

minixml (推荐使用 [backcolor=transparent]2.9 版本)
请从 这里下载,典型的安装方式如下: ./configure
make
sudo make install


注意:
  • minixml推荐使用 [backcolor=transparent]2.9 版本;
  • 执行./configure时默认是配置安装目录为/usr/local/,如果需要指定安装目录,请使用 ./configure —prefix=/your/install/path/ 。


编译安装OSS C SDK


典型的编译命令如下: cmake .
make
make install


注意:
  • 执行cmake . 时默认会到/usr/local/下面去寻找curl,apr,apr-util,mxml的头文件和库文件。
  • 默认编译是Debug类型,可以指定以下几种编译类型: Debug, Release, RelWithDebInfo和MinSizeRel,如果要使用release类型编译,则执行cmake -f CMakeLists.txt -DCMAKE_BUILD_TYPE=Release
  • 如果您在安装curl,apr,apr-util,mxml时指定了安装目录,则需要在执行cmake时指定这些库的路径,比如:cmake -f CMakeLists.txt -DCURL_INCLUDE_DIR=/usr/local/include/curl/ -DCURL_LIBRARY=/usr/local/lib/libcurl.so -DAPR_INCLUDE_DIR=/usr/local/include/apr-1/ -DAPR_LIBRARY=/usr/local/lib/libapr-1.so -DAPR_UTIL_INCLUDE_DIR=/usr/local/apr/include/apr-1 -DAPR_UTIL_LIBRARY=/usr/local/apr/lib/libaprutil-1.so -DMINIXML_INCLUDE_DIR=/usr/local/include -DMINIXML_LIBRARY=/usr/local/lib/libmxml.so
如果要指定安装目录,则需要在cmake时增加: -DCMAKE_INSTALL_PREFIX=/your/install/path/usr/local/如果执行cmake时报以下错误:Could not find apr-config/apr-1-config,原因是在默认路径里面找不到apr-1-config文件,这时候可以在执行cmake命令时,在最后面加上-DAPR_CONFIG_BIN=/path/to/bin/apr-1-config。如果报:Could not find apu-config/apu-1-config,则需要加上-DAPU_CONFIG_BIN=/path/to/bin/apu-1-config。


Linux示例工程


基于Aliyun OSS C SDK的示例工程 aliyun-oss-c-sdk-demo.tar.gz 。其中,示例oss-c-sdk-demo-specified-installation基于OSS C SDK及依赖的第三方库,都安装在/home/your/oss/csdk下;其它示例工程是基于OSS C SDK及依赖的第三方库,安装在默认目录下,即安装时不指定目录。
  • oss-c-sdk-demo-centos Aliyun/CentOS下,基于默认安装路径的OSS C SDK示例工程
  • oss-c-sdk-demo-debian Debian下,基于默认安装路径的OSS C SDK示例工程
  • oss-c-sdk-demo-redhat RedHat下,基于默认安装路径的OSS C SDK示例工程
  • oss-c-sdk-demo-suse SuSE下,基于默认安装路径的OSS C SDK示例工程
  • oss-c-sdk-demo-ubuntu Ubuntu下,基于默认安装路径的OSS C SDK示例工程
  • oss-c-sdk-demo-specified-installation Linux下,基于自定义安装目录的OSS C SDK示例工程

示例工程的详细说明,请参看 Linux下使用Aliyun OSS C SDK
解压后进入工程目录(oss-c-sdk-demo-xxx),执行make,编译示例工程;执行make clean清理编译产生的文件;执行./main运行可执行程序。

提示:
  • 示例代码中的OSS_ENDPOINT、ACCESS_KEY_ID、ACCESS_KEY_SECRET、BUCKET_NAME请更换成有效值;
  • 如果OSS C SDK及依赖库的动态库不在系统目录下,执行时请使用LD_LIBRARY_PATH指定。


Windows


Windows环境下,OSS C SDK目前只支持 [backcolor=transparent]Win32 方式编译,暂不支持 [backcolor=transparent]x64。使用 [backcolor=transparent]Win32 编译的库,可以在 [backcolor=transparent]Win32 或 [backcolor=transparent]x64工程中使用。

环境与依赖

  • OSS C SDK(Windows)依赖的第三方库和Linux版本一致,分别是apr,apr-util,curl,mxml。
  • SDK提供了Visual Studio 2008和Visual Studio 2010的项目工程,分别支持Visual Studio 2008,Visual Studio 2010及其以后版本。
  • SDK提供了third_party,包含了需要用到的第三方库(apr, apr-util, curl, mxml)的头文件和库文件,用户可以使用这里的头文件和库文件编译,运行sample和test项目。


Visual Studio 2008版本

  • 对应的项目文件为oss_c_sdk_2008.sln等包含2008的文件
  • OSS C SDK需要用到stdint.h头文件,Visual C++ 2008默认是没有此头文件,如果用户没有提前安装此头文件,可以将third_party/include中的stdint.h.bak重命名为stdint.h后使用。
  • 从2.0.0版本才开始支持Visual Studio 2008,之前版本均不支持


Visual Studio 2010及其以后版本

  • 对应的项目文件为oss_c_sdk.sln等不包含数字的文件。
  • Visual Studio 2010及其以后版本都包含了stdint.h头文件。
  • 如果用户使用Visual Studio 2012及其以后版本打开时,会提示用户是否将项目升级成使用最新版的编译器和库,这里最好和用户自己的项目保持一致:如果用户的项目使用了最新版本的编译器和库,就选择升级,否则可以不升级。


Visual Studio示例工程


示例工程提供了基于Visual Studio 2008/2010/2012/2013/2015的工程,您可以用Visual Studio直接打开对应工程, 修改Endpoint/AccessKeyID/AccessKeySecret/BucketName等配置后,既可编译运行。您也可以在示例工程基础上开发您的项目。

注意:
  • 运行oss-c-sdk-sample前,请在Visual Studio做如下配置。在Sulution Explore中选择工程oss-c-sdk-sample,右击选择Property,在oss-c-sdk-sample Property Pages中配置Configuration Properties -> Debugging -> Environment为 [backcolor=transparent]PATH=..\oss-c-sdk\lib\Release\;%PATH% 。

使用Visual Studio编译OSS C SDK、运行示例程序的详细步骤及常见问题,请参考 Windows下编译使用Aliyun OSS C SDK

示例工程


C SDK提供丰富的示例程序,方便用户参考或直接使用。您可以从 GitHub获取示例程序。示例程序包括以下内容: oss_progress_sample.c
示例文件示例内容
oss_put_object_sample展示了文件上传的用法,包括从内存/文件上传、携带MD5校验上传、携带元数据上传、url签名上传等
oss_get_object_sample.c展示了文件下载的用法,包括下载到内存、下载到文件、范围下载、URL签名下载等
oss_append_object_sample.c展示了追加上传的用法,包括从内存追加上传、从文件追加上传
oss_multipart_upload_sample.c展示了分片上传的用法,包括从内存分片上传、从文件分片上传、取消上传分片上传等
oss_resumable_sample.c展示了并发断点续传上传/下载的用法
oss_head_object_sample.c展示了获取文件元信息的用法
oss_list_object_sample.c展示了列举文件的用法
oss_delete_object_sample.c展示了删除文件的用法,包括删除单个文件、删除多个文件
oss_callback_sample.c展示了上传回调的用法,包括上传回调、分片上传回调
[tr=rgb(239, 251, 255)][td] 展示了进度条的用法,包括上传、追加上传、分片上传、下载等 oss_crc_sample.c展示了上传、下载使用CRC校验的用法 oss_image_sample.c展示了图片处理的用法

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

相关电子书

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