S3 简单使用
一、S3 简单理解
S3 全名是 Simple Storage Service,简便的存储服务。amazon (S3) 是一个公开的服务,Web 应用程序开发人员可以使用它存储数字资产,包括图片、视频、音乐和文档。S3 提供一个 RESTful API 以编程方式实现与该服务的交互。可以通过 Amazon S3 随时在 Web 上的任何位置存储和检索的任意大小的数据。
理论上,S3 是一个全球存储区域网络 (SAN),它表现为一个超大的硬盘,您可以在其中存储和检索数字资产。但是,从技术上讲,Amazon 的架构有一些不同。您通过 S3 存储和检索的资产被称为对象。对象存储在存储桶(bucket)中。您可以用硬盘进行类比:对象就像是文件,存储桶就像是文件夹(或目录)。与硬盘一样,对象和存储段也可以通过统一资源标识符(Uniform Resource Identifier,URI)查找。
Amazon S3将数据作为对象存储在存储区中。一个对象由一个文件和可选的描述该文件的任何元数据组成。在S3里面实质上是没有目录和文件夹的概念,即目录概念实质只是对象的前缀,并不存在实体。
二、相关概念介绍
存储桶(bucket)
数据都是存储在AWS 的存储桶中,可以把桶理解为磁盘分区,不过它是由一个桶名(字符串)唯一标识,即你不能创建别人已经创建过的桶。
对象
(1)对象键在存储桶中唯一标识对象。(Key)
(2)对象元数据是一组名称值对。可以在上传对象元数据时对其进行设置。上传对象后,将无法修改对象元数据。
修改对象元数据的唯一方式是创建对象的副本并设置元数据。对象元数据又分为系统元数据和用户自定义元数据。
(3) 数据
S3存储类型
STANDRARD:最常用的数据类型
STANDRARD_IA:检索收费,不适用于经常访问的数据
ONEZONE_IA:无法灵活的应对可用会丢失的情况
GLACIER:不用于实时访问,必须先还原对象,然后再访问
RRS:无
三、S3的使用
使用SDK的访问服务,python 是安装 boto3 这个库操作 S3, 需要配置S3 的Access Key、Secret Key、Region Name。
s3 = boto3.client(
service_name='s3',
aws_access_key_id=S3_ACCESS_KEY_ID,
aws_secret_access_key=S3_ACCESS_KEY_SECRET,region_name=region_name
)
prefix = "prefix"
all_obj = s3.list_objects_v2(Bucket=bucket_name, Prefix=prefix)
file_count = all_obj["KeyCount"]
print("file_count=====", file_count)
# print("all_obj====", all_obj)
for file in all_obj["Contents"]:
print("file=====", file)
上面的例子是展示出某个 bucket 下面的所有文件,一次请求最多请求 1000 个。
相关文章
- 使用Fiddler对Android手机抓包
- 消息通讯——MQTT的入门和使用
- pinpoint2.3.3搭建--史上最简单搭建过程及使用(启动即用)
- kettle工具的简单使用
- JWT原理构成与使用(带案例简单易懂)[通俗易懂]
- 如何使用usbsas安全地读取不受信任的USB大容量存储设备
- 使用Vite+Vue3.0实现一个简单的TodoList案例
- 使用PMM图形化监控MySQL MGR动态
- 【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )
- Redis集群搭建与简单使用详解大数据
- 使用Linux中的For循环实现简单程序(linux的for循环)
- 使用Linux SZ 命令传输文件的简单步骤(linuxsz命令)
- 使用SQL Server 将数据变得更简单(sqlserver.exe)
- 处理Java使用Redis实现过期时间处理(redisjava过期)
- 使用MySQL查询子节点:简单有效的层级关系管理(mysql查询子节点)
- 如何使用MSSQL查看服务器端口(怎么查看mssql 端口)
- 使用Linux SNMP包让网络管理更简单(linuxsnmp包)
- 使用 MSSQL 获取当前日期的简单方法(mssql 获取当前日期)
- 使用MSSQL查询实现简单的小计计算(mssql 查询加入小计)
- MySQL中使用IF条件语句进行查询(mysql中if判断查询)
- 使用MySQL实现简单的两表添加操作(mysql两表添加)
- 基于Java回顾之JDBC的使用详解