工作需要测试数据库从 S3(Simple Storage Service)导入数据文件,公司有私有S3环境。
S3是一种对象存储,数据模型很简单,就是key-value,key就是一个任意字符串,value是一个文件。
S3的功能就是上传一个文件,并且标记为key,以后就用key获取这个文件。
S3中还有一个bucket的概念,从用户角度可以理解为一个命名空间,S3的key以便协程目录的形式,bucket看起来也像是一个目录。
S3客户端与服务器的交互通过REST,也就是 http + json,但是用户一般使用某个客户端,例如s3cmd或者awscli,其中s3cmd是python程序,可以通过python的pip安装。
访问S3服务,客户端需要三个必要信息:
AK(Access Key)一个字符串
SK (Secret Key)一个字符串
endpoint -- S3服务器的IP和端口号
例如:
endpoint = http://172.32.148.56:2080
AK =UYLM5WCCFLX6MWRBYP46
SK =vluS7nv2dSrC7ClXyWQ5NKMQddA7a387Y5mShRHP
region -- 是可选的,可以用默认值(同事告诉我的)
bucket -- 用户上传文件时,可以自己创建,第一次访问时也不是必须的
s3cmd的安装:
pip3 install s3cmd -i https://pypi.tuna.tsinghua.edu.cn/simple
这篇博客很好的介绍了 s3cmd的配置和使用:
https://www.cnblogs.com/sunhongleibibi/p/11661123.html
附一下我的s3cmd配置文件(~/.s3cfg)的关键参数 :
access_key = UYLM5WCCFLX6MWRBYP46
secret_key = vluS7nv2dSrC7ClXyWQ5NKMQddA7a387Y5mShRHP
host_base = 172.32.148.56:2080 #相当于endpoint
use_https = False