添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
踢足球的帽子  ·  AWS CLI ...·  1 周前    · 
从容的炒面  ·  文档中心·  1 周前    · 
刀枪不入的楼房  ·  使用 boto3 调用 S3 ...·  1 周前    · 
谈吐大方的消炎药  ·  Correct answer: ...·  4 月前    · 
闷骚的香烟  ·  武汉市统计局·  6 月前    · 
有腹肌的大象  ·  SQL Server - 编程那点事·  10 月前    · 
  • S3 对象存储

    遵循 Amazon S3 协议的对象存储服务

  • boto3

    基于s3协议实现了客户端API的 Python SDK,用于调用对象存储服务

  • Endpoint

    我们在调用s3对象存储的代码中使用的“Endpoint”,是指对象存储对外服务的访问域名

  • Bucket

    Bucket 是指对象存储上的存储空间,可理解为存放对象的“容器”,一个使用对象存储的用户可以拥有多个Bucket。主流的云服务提供商,都会支持用户对特定的Bucket进行访问权限的配置。

  • Object

    用户存储在对象存储上的每个文件都是一个 Object,每个Object 有一个键名/健值。对象可以是文本、图片、音频、视频或者网页等。

    使用简单对象上传方式时,对象大小限制在5GB以内。

    使用分块上传时,每块的大小限制在5GB以内,且分块数量需要小于10000个,即最大上传对象约为48.82TB。

S3 中没有文件夹。只是大多数可用的S3浏览器工具都显示了一部分的键名,并用斜杠分隔为文件夹。

安装 boto3

pip 安装

pip install boto3
git clone https://github.com/boto/boto3.git && cd boto3 && sudo python setup.py install

使用boto3

接下来我们用代码演示一下,怎么使用 boto3

# 初始化 client
access_key = 'AKID10zuoeooooooooooooooooooooo' # ak
secret_key = 'nlbPCvHWkoooooooooooooooooooooo'     # sk
s3_host = 'cos.ap-hangzhou.myqcloud.com'           # Endpoint
s3client = boto3.client('s3',aws_secret_access_key = secret_key,aws_access_key_id = access_key,endpoint_url = s3_host)
# 遍历 bucket
list_buckets = s3client.list_buckets()
print(list_buckets)
# 遍历 bucket下的文件(对象)
bucket_name = 'cxy-1300123456'
file_list = []
response = s3client.list_objects_v2(
    Bucket=bucket_name,
    # MaxKeys=1000  # 返回数量,如果为空则为全部
file_desc = response['Contents']
for f in file_desc:
    print('file_name:{},file_size:{}'.format(f['Key'], f['Size']))
    file_list.append(f['Key'])
print(file_list)
bucket_name = "chenxy-1300123456"
local_file = "./tmp/hello.txt"
oss_key = "hello.txt"
# 上传文件
s3client.upload_file(local_file, bucket_name, oss_key)
# 下载文件
s3client.download_file(bucket_name, oss_key, local_file)

更多 boto3支持的方法,参见:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html?highlight=put_object#client

python 通过 boto 3 实现ceph分布式存储上传下载功能前言环境支持开始第一步结束 aws是Amazon Web Service的简写,它包括众多服务,其中最有名的两个是EC2和S 3 。 S 3 是Simple Storage Service的简写,它是一种 对象存储 的实现。 本文档介绍用户如何 使用 boto 3 来操作s 3 对象存储 服务。 boto 3 提供了两个级别的接口来访问AWS服务: High Le...
BOTO 是一个开源的 PYTHON 发布包,是AWS(AMAZON WEBSERVICE)的 PYTHON 封装。 近期,我们公司用到国内某知名公司的S 3 云存储服务,需要 调用 该公司提供的S 3 PYTHON SDK。鉴于该公司没有 PYTHON 版本的SDK,所以我决定利用开源的 BOTO 的S 3 模块稍加改进。在经过easy_install boto 之后便开始了 BOTO 的封装 以下是我最开始封装的代码模型
cfg = self.cfg #用Minio获取s 3 服务器client,查看桶(存放文件的文件夹cfg['bucket'])是否存在。 client = Minio(cfg['endpoint'], access_key=cfg["access_key"], secret_key=cfg["secret_key"]) found = client.bucket_exists(cfg['bucket']) if found: #用 boto 3 ..