最近开发需要实现自建对象存储,并在linux上连接
因为原有的程序是C++的,所以需要C++或C的库,但是minio提供的miniocpp没有编译成功
miniocpp
因为minio符合S3标准,所以也可使用 AWS 的SDK
编译文档
1. 安装依赖
sudo apt-get install libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev libpulse-dev
2. 下载源码
# https
git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp
# ssh
git clone --recurse-submodules git@github.com:aws/aws-sdk-cpp.git
3. 从源代码构建SDK
- 创建目录
mkdir sdk_build
cd sdk_build
- 生成构建文件
cmake ../aws-sdk-cpp -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/firefly/workspace/install -DBUILD_ONLY="s3" -DENABLE_TESTING=OFF
# make
make DESTDIR=/home/firefly/workspace/install
make install
运行结束即可在 /home/firefly/workspace/install 目录下看到 include 和 lib 文件夹,其中就是头文件和动态库
4. 注意事项
- cmake 版本
最低版本为 3.13 - 关闭测试
在运行cmake时需要加上 -DENABLE_TESTING=OFF 关闭测试服务,仅构建S3时不需要运行测试,会导致后续make失败 - 调用动态库时报错
在调用动态库时,报未找到CURL4之类的错误,查看curl的引用或者版本是否有误