AWS SDK for C++调用第三方S3 API
2017-07-26 13:09
387 查看
这里介绍AWS SDK for C++ 1.0.x版本,比如下载:
https://github.com/aws/aws-sdk-cpp/archive/1.0.164.tar.gz
环境:RHEL/CentOS 7
一、编译SDK
配置yum源:
刷新源:yum makecache fast
安装EPEL源:yum -y install epel-release
再刷新源:yum makecache fast
安装必备软件和库:
可能还会依赖其它库,根据编译时报的错误来判断安装哪个包。
准备源码:
编译源码:
安装头文件和库到一个目录:
二、编写示例代码
列出桶:
三、编译示例代码并运行
https://github.com/aws/aws-sdk-cpp/archive/1.0.164.tar.gz
环境:RHEL/CentOS 7
一、编译SDK
配置yum源:
[centos] name=centos7 baseurl=http://mirrors.163.com/centos/7/os/x86_64/ enabled=1 gpgcheck=0
刷新源:yum makecache fast
安装EPEL源:yum -y install epel-release
再刷新源:yum makecache fast
安装必备软件和库:
yum -y erase cmake yum -y install cmake3 gcc-c++ libstdc++-devel libcurl-devel zlib-devel cd /usr/bin; ln -s cmake3 cmake
可能还会依赖其它库,根据编译时报的错误来判断安装哪个包。
准备源码:
tar -zxf 1.0.164.tar.gz -C /tmp mkdir -p /tmp/build; cd /tmp/build cmake -DCMAKE_BUILD_TYPE=Release /tmp/aws-sdk-cpp-1.0.164
编译源码:
make -j `nproc` -C aws-cpp-sdk-core make -j `nproc` -C aws-cpp-sdk-s3
安装头文件和库到一个目录:
mkdir -p /tmp/install make install DESTDIR=/tmp/install -C aws-cpp-sdk-core make install DESTDIR=/tmp/install -C aws-cpp-sdk-s3
二、编写示例代码
列出桶:
#include <iostream> #include <aws/s3/S3Client.h> #include <aws/core/Aws.h> #include <aws/core/auth/AWSCredentialsProvider.h> using namespace Aws::S3; using namespace Aws::S3::Model; using namespace std; int main(int argc, char* argv[]) { Aws::SDKOptions options; options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Trace; Aws::InitAPI(options); Aws::Client::ClientConfiguration cfg; cfg.endpointOverride = "10.202.91.2:88"; // S3服务器地址和端口 cfg.scheme = Aws::Http::Scheme::HTTP; cfg.verifySSL = false; Aws::Auth::AWSCredentials cred("81BEB5DB4DED", "WzFGRTc34MzI5NjM0ODcxOUJDM0Jd"); // 认证的Key S3Client client(cred, cfg, false, false); auto response = client.ListBuckets(); if (response.IsSuccess()) { auto buckets = response.GetResult().GetBuckets(); for (auto iter = buckets.begin(); iter != buckets.end(); ++iter) { cout << iter->GetName() << "\t" << iter->GetCreationDate().ToLocalTimeString(Aws::Utils::DateFormat::ISO_8601) << endl; } } else { cout << "Error while ListBuckets " << response.GetError().GetExceptionName() << " " << response.GetError().GetMessage() << endl; } Aws::ShutdownAPI(options); return 0; }
三、编译示例代码并运行
g++ -std=c++11 -I/tmp/install/usr/local/include -L/tmp/install/usr/local/lib64 -laws-cpp-sdk-core -laws-cpp-sdk-s3 a.cpp export LD_LIBRARY_PATH=/tmp/install/usr/local/lib64 ./a.out
相关文章推荐
- C# 调用C++ SDK/API的问题总结
- VC6.0 C++ 如何调用微软windows系统SDK 语音API
- VC6.0 C++ 如何调用微软windows系统SDK 语音API
- c++实现Face++ API的调用
- Android Studio调用c++代码和opencvforandroid
- 《API Design for C++》读书笔记(一):API 简介
- C、C++、API、SDK、IDE、VC++、MSDN、MFC、OWL、VCL、ATL 、BCB
- ArcGIS API for Silverlight开发入门(9)外传:在程序中调用AO
- c++ 直接插入排序算法---数组引用调用,正序,倒序循环,for终止条件还是for可以条件
- C/C++中调用api设置mysql连接的编码方式
- C++连接mysql的方法(直接调用C-API)
- SWIG之为C/C++的API生成Python调用接口基础
- 设置、调用-C/C++中调用api设置mysql连接的编码方式-by小雨
- ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法
- ArcGIS For Silverlight API 开发中利用WebService调用ArcObjects
- C++调用PythonAPI线程状态和全局解释器锁(转)
- 调用第三方服务API的SDK编写思路
- ArcGIS Runtime SDK for Android开发之调用GP服务(异步调用)
- Qt(C++)调用工业相机Basler的SDK简单使用示例
- 新浪微博 SDK for Windows Phone 7 (API)