python通过boto3实现ceph S3分布式存储上传下载功能
- 前言
- 环境支持
- 开始
- 结束
前言
aws是Amazon Web Service的简写,它包括众多服务,其中最有名的两个是EC2和S3。
S3是Simple Storage Service的简写,它是一种对象存储的实现。
本文档介绍用户如何使用boto3来操作s3对象存储服务。boto3提供了两个级别的接口来访问AWS服务:
High Level的Resource级别的接口,Low Level的Client接口。
Client级别的接口返回Dictionary来表示查询到的资源信息,Resource级别的接口对Client级别的接口进行了面向对象的封装,接口的返回值大部分都是Resource对象(如果返回值是某个Resource的信息的话),我们可以对返回的对象再进行操作(比如删除,修改等)
环境支持
- python版本:2.7
- 通过pip安装, pip install boto3 ,也可以安装boto2
开始
- 创建集群,创建s3用户,创建存储桶。这些操作不再讲解,可以参考官方文档。
- 老版本boto操作方式,直接上代码
import boto
import boto.s3.connection
class CephS3():
def __init__(self):
access_key = '111111'
secret_key = '11111'
IP = '192.168.1.1'
PORT = 7480
self.conn = boto.connect_s3(
aws_access_key_id=access_key,
aws_secret_access_key=secret_key,
host=IP,
port=PORT,
is_secure=False, # 不验证ssl
calling_format=boto.s3.connection.OrdinaryCallingFormat(),
)
def get_bucket(self):
# 获取存储桶
for bucket in self.co