python通过boto3实现ceph s3分布式存储上传下载功能

时间:2024-10-11 08:39:12

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

开始

  1. 创建集群,创建s3用户,创建存储桶。这些操作不再讲解,可以参考官方文档。
  2. 老版本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