目录
1 说明
阿里云OSS类似于网盘的功能,需要和阿里云签订商业协议才能存储大量的数据,所以如果和它们没有业务往来可以忽略本文内容。本文内容主要来自移植OSS C语言SDK(它还有其他语言的SDK)的经验。
2 特别说明
作者在移植成功之后,在(Ubuntu 1604上)运行过程中发现调用断点续传上传、断点续传下载、分片上传、追加上传的业务函数会出现内存泄漏最终出现OOM。当时(2020年12月)对方技术支持说相对于C他们主要是推广C++版本的,推荐我们用C++的(当然我们也没有用C++版本,所以不知道C++版本的情况),现在有没有修复这些问题作者目前还没有验证。下列几张图是说明断点续传上传时的内存情况(虚拟内存占用越来越大)。
3 交叉编译移植
3.1 说明
本文提到的依赖软件包可以在百度网盘中找到,也可以自行从各自的官网下载。
链接:https://pan.baidu.com/s/1KK8HtGcJvR38ZmEazLlU2w
提取码:nsmy
可以从https://help.aliyun.com/document_detail/32131.html?spm=5176.87240.400427.52.8f4a4614owPWLu
查看OSS的全貌。
3.2 全局变量设置
在移植其他依赖包之前请先设置全局变量,
export CC=arm-none-linux-gnueabi-gcc
export CXX=arm-none-linux-gnueabi-g++
3.3 移植openssl-1.0.2t
tar xzf openssl-1.0.2t.tar.gz
cd openssl-1.0.2t
setarch i386 ./config no-asm --static --prefix=/home/lijun_temp/install_tmp
将crypto/buffer/buffer.c改名为crypto_buffer.c,更改crypto/buffer/Makefile,将其中的buffer.c、buffer