libs3-c:编译安装和基础命令操作
S3(Simple Storage Service )是互联网存储解决方案,该服务旨在降低开发人员进行网络规模级计算的难度。Amazon S3 提供了一个简单 Web 服务接口,可用于随时在 Web 上的任何位置存储和检索任何数量的数据。此服务让所有开发人员都能访问同一个具备高扩展性、可靠性、安全性和快速价廉的数据存储基础设施,为开发人员带来最大化的规模效益。
通俗讲,开发者只需要专注自己的业务和数据,可将任意格式数据存放到云端,并生成URL分享给其他人访问,所有这些过程都有一整套协议来保证,这套协议就是S3。目前已有多个互联网厂商提供了类亚马逊S3的数据存储服务,libs3-c就是支持该服务的客户端C库,以下操作默认在Linux平台上执行。
编译安装
克隆libs3-c开源库到本地(无git工具时可从网站下载压缩包)
$ git clone https://github.com/Doawen/protocol-libs3-c.git
安装依赖包
$ sudo apt-get install libxml2
$ sudo apt-get install libxml2-dev
$ sudo apt-get install libcurl4-openssl-dev
编译、安装libs3
$ cd protocol-libs3-c
$ sudo make clean
$ make
$ sudo make install
验证是否安装成功,若返回帮助信息则安装成功,若提示无该指令则需重新安装
$ s3
配置环境变量
在键入s3命令前,需要配置环境变量,以确保库文件能获得有效的KEY、SECRET和服务地址;
若采用api方式访问,则无需配置环境变量,直接通过结构体传递参数即可。
进入profile文件
$ sudo vim /etc/profile
在文件结尾添加环境变量,分别为KEY、SECRET和服务地址,从平台建立账号后申请获得
export S3_ACCESS_KEY_ID=xxxxxxxxxxxx
export S3_SECRET_ACCESS_KEY=xxxxxxxxxxxx
export S3_HOSTNAME=xxx.xxx.xxx.xxx
保存文件,重新加载使配置生效
$ source /etc/profile
基础命令行操作
以新建名称为wxwfolder的bucket,上传文件dog.jpeg且命名为对象mydog.jpeg为例,采用非加密方式(-u),若采用加密方式而又未获得CA证书,键入命令会等待很长时间才返回错误。
新建存储桶(bucket),名称需在平台全局唯一(因为bucket是URL一部分)
$ s3 -u create wxwfolder
上传对象(object)
$ s3 -u put wxwfolder/mydog.jpeg filename=dog.jpeg
列出存储桶的对象
$ s3 -u list wxwfolder
生成对象URL,浏览器可直接通过该URL访问对象
$ s3 -u gqs wxwfolder/mydog.jpeg
对于其他指令使用方式,可键入s3命令从帮助信息中或源代码中查看。
当不再需要或需重装时,可卸载libs3
$ cd protocol-libs3-c
$ sudo make uninstall
S3协议参考和用户指导
S3协议细节和相关概念,操作指导等都可在亚马逊官网获得
https://aws.amazon.com
https://docs.aws.amazon.com/index.html
https://docs.aws.amazon.com/s3/