亚马逊AmazonS3存储概念

一、什么是AmazonS3

        Amazon Simple Storaae Service 是互联网存储解决方案。该服务旨在降低开发人员进行网络规模级计算的难度。
        Amazon S3 提供了一个简单 Web 服务接口,可用于随时在 Web 上的任何位置存储和检索任何数量的数据。此服务让所有开发人员都能访问同一个具备高扩展性、可靠性、安全性和快速价廉的数据存储基础设施 ,Amazon 用它来运行其全球的网站网络。此服务旨在为开发人员带来最大化的规模效益。

二、使用 Amazon S3 的优势

        Amazon S3 特意内置了着重于简易性和稳健性的最小功能集。以下是使用 Amazon S3 的一些优势:
        • 创建存储桶 – 创建和命名存储数据的存储桶。存储桶是 Amazon S3 中用于数据存储的基础容器。
        • 存储数据 – 在存储桶中存储无限量的数据。可将所需数量的对象上传到 Amazon S3 存储桶。每个对象可
包含最多 5 TB 的数据。使用开发人员分配的唯一键值存储和检索每个对象。
        • 下载数据 – 下载您的数据或允许其他人进行下载。随时下载您的数据或允许其他人进行下载。
        • 权限 – 对于要在您的 Amazon S3 存储桶中上传或下载数据的其他人员,您可以授予其访问权限或拒绝其
        访问_  将上传和下载的许可授予三种类型的用户。身份验证机制可帮助确保数据安全,以防未授权访问。
        • 标准接口 – 使用基于标准的 REST 和 SOAP 接口,它们可与任何 Internet 开发工具包搭配使用。(HTTP 上的 SOAP 支持已弃用,但是仍可在 HTTPS 上使用。对于 SOAP 将不支持新 AmazonS3 功能。建议您使用 REST API 或 AWS 开发工具包。)

三、基本概念
        1、存储桶

         存储桶是 Amazon S3 中用于存储对象的容器。每个对象都储存在一个存储桶中。例如,如果名为 photos/puppy.jpg 的对象存储在 johnsmith 存储桶中 ,则可使用 URL:http://iohnsmith.s3.amazonaws.com/photos/puppy.ipg 对该对象进行寻址。
        存储桶可用于多种用途: 它们在最高级别组织 Amazon S3 命名空间;它们标识负责存储和数据传输费用的账户;它们在访问控制中发挥作用;它们用作使用情况报告的聚合单元。

用户可以配苦存储桶,以便在特定 AWS 区域进行创建。也可以配置存储桶,以便在每次向它添加对象时,Amazon S3 都会生成一个唯一的版本ID 并将其分配给对象。

2、对象

对象是 Amazon S3 中存储的其本实体。对象由对象数据和元数据组成。数据部分对 Amazon S3 不诱明。元数据是一组描述对象的名称-值对。其中包括一些默认元数据(如上次修改日期)和标准HTTP 元数据(如 Content-Type)。您还可以在存储对象时指定自定义元数据。
在存储桶中,对象将由键(名称)和版本 ID 进行唯一地标识。


3、键


键是指存储桶中对象的唯一标识符。存储桶内的每个对象都只能有一个键。存储桶、键和版本 ID 的组合唯一标识各个对象。因此,您可以将 Amazon S3 看作“存储桶 + 键 + 版本”与对象本身之间的基本数据映射。将 Web 服务终端节点、存储桶名、密钥和版本(可选)组合在一起,可唯一地寻址 Amazon S3 中的每个对象。例如,在 URL http://doc.s3.amazonaws.com/2006-0301/AmazonS3.wsdl 中,“doc”是存储桶的名称,“2006-03-01/AmazonS3.wsdl”是键。


4、区域


您可以选择一个 AWS 区域供 Amazon S3 存储您创建的存储桶。您可以选择一个区域,以便优化延迟、尽可能降低成本或满足法规要求。在某一区域存储的数据元将一直留在该区域,除非您特意将其传输到另一区域。例如,存储在欧洲(爱尔兰)区域中的对象将一直留在该区域。

5、用户id

        账户访问密钥提供对账户拥有的 AWS 资源的完全访问权限。以下是访问密钥示例:
        访问密钥 ID (20 个字符的字母数字字符串)。例如:AKIAIOSFODNN7EXAMPLE

        访问密钥ID 可唯一标识 AWS 账户。

6、KEY SECRET

        秘密访问密钥(40个字符的字符串)。

        例如:wJalrXUtnFEMVK7MDENG/bPxRfiCYEXAMPLEKEY

        可以使用这些访问密钥向 Amazon S3 发送经身份验证的请求。


7、Amazon S3 数据一致性模型


Amazon S3 在所有区域为 S3 存储桶中的新对象的 PUTS 提供写后读一致性,不过有一条警告。说明如下,
如果在创建对象之前对键名发出 HEAD 或 GET 请求 (查看该对象是否存在) Amazon S3 提供写后读最终一致性。
Amazon S3 在所有区域提供最终一致性用于覆盖 PUTS 和 DELETES。
单个键的更新是原子更新。例如,如果您对一个现有键执行 PUT 操作,则后续读取可能会返回旧数据或已更新的数据,但它永远不会返回损坏的数据或部分数据。
Amazon S3 通过在 AWS 数据中心内的多个服务器之间复制数据,从而实现高可用性。如果 PUT 请求成功,则数据已安全存储。但是,有关更改的信息必须在 Amazon S3 间进行复制,这可能需要一些时间,因此您可能会观察到以下行为:
        • 这是一个过程,会将一个新对象写入 Amazon S3,并立即列出其存储桶内的密钥。在充分传播此更改前,此对象可能不会显示在列表中。
        • 这是一个过程,会替换一个现有的对象,并立即尝试读取此对象。在充分传播此更改前,Amazon S3 可能会返回先前的数据。
        • 这是一个过程,会删除一个现有的对象,并立即尝试读取此对象。在充分传播此删除前,Amazon S3 可能会返回删除的数据。
        • 这是一个过程,会删除一个现有的对象,并立即列出其存储桶内的键。在充分传播此删除前,Amazon S3可能会列出删除的对象。
(Amazon S3 目前不支持对象锁定。如果同时对同一键发出两个 PUT 请求,则以带有最新时间戳的请求为准。如果这会导致问题,需要在应用程序中创建对象锁定机制。)
更新是基于键的。无法跨键值实现原子更新。例如,无法根据一个键值的更新对另一个键值进行更
新,除非将此功能设计到应用程序中。
下表描述了最终一致性读取和一致性读取的特征。

最终一致性读取一致性读取
过时读取可能性无过时读取
最低读取延迟潜在的更高读取延迟
最高读取吞吐量潜在的更低读取吞吐量


 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot Amazon S3 是一个集成组件,它允许你在使用 Spring Boot 框架的 Java 应用程序中轻松地与 Amazon Simple Storage Service (S3) 集成。Amazon S3 是一种云存储服务,用于存储和检索大量的静态文件、应用程序数据或其他任何类型的数据。 在 Spring Boot 中集成 Amazon S3,你可以执行以下操作: 1. 添加依赖:在你的 `pom.xml` 或者 `build.gradle` 文件中添加 AWS SDK for Java 和 Spring Cloud AWS S3 的依赖。 ```xml <!-- Maven --> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-s3</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-aws-s3</artifactId> </dependency> // Gradle implementation 'com.amazonaws:aws-java-sdk-s3' implementation 'org.springframework.cloud:spring-cloud-starter-aws-s3' ``` 2. 配置AWS凭证:你需要提供 AWS 密钥(ACCESS_KEY_ID)和秘密访问密钥(SECRET_ACCESS_KEY),或者设置环境变量(如 `AWS_ACCESS_KEY_ID` 和 `AWS_SECRET_ACCESS_KEY`),以授权对 S3 的访问。 3. 创建 S3 实体和Repository:根据需要定义 S3 存储的对象模型,如 `S3Object` 或自定义实体,然后创建对应的 Repository 接口以支持 CRUD 操作。 4. 上传/下载文件:使用 Spring Boot 的 `@Autowired` 注解注入 S3Client 对象,然后调用其提供的方法来上传文件S3 或从 S3 下载文件。 5. 使用S3服务:Spring Cloud AWS S3 提供了诸如 `AmazonS3Operations` 或 `AmazonS3Client` 的便利类,可以直接用于执行常见的 S3 操作,如列出对象、删除对象等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值