云计算-Amazon S3

亚马逊S3(Amazon S3)

        亚马逊S3是一种云对象存储设施。我们将使用的对象将是您在个人计算机上常用的文件。亚马逊S3产品旨在可扩展到实际无限数量的对象和无限大小的对象,但我们在本实验室的练习中只会使用少量对象。当存储许多对象时,您应该思考可能出现的问题,因为这将解释亚马逊做出的一些设计决策以及您将看到的许多S3存储管理产品。我们将在与本单元相关的主题中详细描述其中的一些产品和其他云提供商的等效产品。

创建S3桶

        我们可以从AWS管理控制台搜索“S3”。

        然后,我们进入S3首页,然后我们必须创建一个桶。一个亚马逊S3桶是在亚马逊S3中可以通过全球唯一标识符访问的单一存储区域。桶开始是空的,但可以无限添加(所以要小心你的代码)。亚马逊根据您桶中使用的存储量以及访问频率收费。如果您的程序在无限循环中失控,您可能会超出分配的信用额度。

        我们将使用AWS管理控制台创建桶,尽管它也可以通过编程方式完成。当我们运行控制台并选择S3产品时,将出现S3管理控制台屏幕。如下所示,它有一个“创建桶”按钮。

        当我们点击“创建桶”按钮时,将显示以下对话框。在这个示例中,已经填写了桶的名称和亚马逊区域。我们通常将其他字段保留为默认选项。

        

        一旦给出桶名称,我们最终点击“创建桶”按钮完成桶创建过程。

        关于此处输入的数据有两个非常重要的事项:

  1. 桶名称必须跨亚马逊云中的所有桶唯一。这意味着您不能使用世界上其他地方正在使用的桶名称。这里使用的桶名称可以作为如何找到唯一桶名称的想法,但您不能使用这个名称,因为该桶已为本单元创建。
  2. 如果您使用的是亚马逊教育账户,您必须从区域列表中选择“美国东部(北弗吉尼亚)”区域。如果您有自己的账户,那么您可以选择任何区域。

        对于加密和桶密钥,我们保持默认选择。表格将为您提供所需格式的提示。您会在“桶名称”字段下面看到一个“查看桶命名规则”的链接。点击此链接可了解更多关于形成桶名称的信息。

        一旦您完成这两个字段(忽略复制设置字段),您就可以点击创建按钮来创建您的桶。不用担心您的第一个桶的“下一步”按钮。它提供了各种桶选项,如加密、压缩和存储类型。您的第一个桶应使用默认设置。

        一旦创建了桶,您将不得不关闭对话屏幕,然后您将返回到S3控制台屏幕,但这次您的桶将列在表格中。在上面的示例中,屏幕将显示如下:

        当您将鼠标光标悬停在桶上时,您会看到您可以选择桶。

向桶中添加对象

        在这一节中,我们将使用AWS管理控制台向S3桶中添加一些文件。我们可以从主S3控制台屏幕通过点击桶列表中的桶名称来进行操作,如上一节中的前一个示例所示。

        一旦我们点击空桶的桶名称,以下屏幕将出现。

        桶名称在您的桶中将显示为您赋予的唯一名称。然后我们点击“上传”按钮,将出现一个对话框,我们可以选择要放入桶中的文件。它将如下所示。

        这里提供了两个选项,我们可以将文件拖放到对话框中,或者我们可以点击“添加文件”按钮,将出现一个进一步的对话框,允许我们在计算机上选择文件。这个对话框将是您浏览器的文件选择对话框。

        当您点击“上传”按钮时,您将看到一个进度条,显示您添加的文件正在上传到桶中。

        一旦文件被添加,它们将出现在桶对象列表中。以下屏幕截图显示了在上传名为SCU.png的单个文件后的亚马逊控制台。

        从屏幕上可以看到,还有几个其他选项。我们可以更改对象属性、权限并应用各种管理策略到桶中的对象。在本实验室会话中,我们将使用默认安排。

        要查看所有对象的属性,我们可以使用复选框选择对象,属性窗口将出现。

        请注意,这些属性与上传时作者的对象相关。您的对象将具有不同的属性,这些信息将与上传的对象一起显示。

        还要注意,一旦您选择了一个或多个对象,“操作”菜单就可以访问。这将允许您操纵对象,例如删除、复制、下载和更改几个对象属性。

        我们也可以像您在个人设备上使用的文件系统一样将对象组织成文件夹。您可以在上面的屏幕截图中看到“创建文件夹”按钮。我们将在下面的练习中创建一个文件夹。值得注意的是,当我们创建它们时,S3桶没有物理文件夹。这只是客户端将文件夹名称放在对象的完整标识符的开头的命名约定。通常这不会被注意到,客户端软件将表现得就像PC或其他设备上的真实文件夹一样。

使用S3桶托管网站

        在前一节中,您已经看到桶非常类似于文件系统。亚马逊进一步允许我们使用桶作为静态网站。

        在制作网站之前,我们需要创建一个index.html文件,它将用作配置的一部分。以下是一个非常简单的index文件(index.html)示例:

<!DOCTYPE html>
<!-- PROG2003 Lab Simple Web page -->
<html>
    <head>
        <title>Laboratory - Amazon S3</title>
    </head>
    <body>
        <h1>Amazon S3 website</h1>
        <p>Hello world!</p>
    </body>
</html>

        您应该很容易识别这段HTML代码。

        我们还需要为亚马逊S3创建一个错误HTML文件,我们将使用以下非常简单的HTML文件,并将其命名为error.html。

<!DOCTYPE html>
<!-- PROG2003 Lab Error Web page -->
<html>
    <head>
        <title>ERROR - Laboratory S3 website </title>
    </head>
    <body>
        <h1>An error has occurred</h1>
        <p>The most likely cause of the error is an incorrect URL.</p>
        <p>However, you have the correct host name to reach this website!</p>
    </body>
</html>

        我们将这两个文件上传到我们希望用作静态网站的桶中。

        然后我们需要将桶配置为网站。我们在管理控制台中选择桶(见前一节),选择“属性”标签。在属性页面的底部,您将看到“静态网站托管”窗格。您可以点击“了解更多”,屏幕将显示如下图所示。

        我们需要点击“编辑”按钮。这将带我们到如下页面。

        然后我们启用“静态网站托管”,并且窗格将扩展如下截图所示。我们还需要指定索引文档和错误文档,这两个文件就是我们刚刚上传的index.html和error.html。假设这些是刚创建的index.html和error.html,其余屏幕将显示如下。

        然后我们点击“保存更改”按钮,它将带我们回到初始桶属性页面。

        我们可以看到的链接(位于“静态网站托管”窗格底部的桶名称)是我们网站的链接。但我们还没有完成。我们需要允许公共访问并添加一个策略以便访问此站点。

配置网站的访问权限

        接下来,我们必须设置权限,以便其他人可以访问我们的网站。默认情况下,亚马逊S3桶和对象非常安全,除了账户所有者外,没有人能够访问对象。对于网站,我们必须更改这一设置,以允许网页被访问。

        使我们的网站对每个人都可访问是一个两阶段的过程。首先,我们必须允许我们自己更改访问政策。默认情况下,即使是所有者也不能更改访问权限。这是通过选择我们将用作网站的桶的“权限”标签上的“阻止公共访问”按钮来完成的。在右上角,有一个“编辑”设置的链接。选择编辑链接后,清除所有阻止访问选项。对话框将显示如下。

        当您保存您的选择时,将要求您确认权限更改。

        接下来,我们必须创建公共政策,允许任何人以只读方式访问网站。当然,我们不希望其他人被允许写入我们的网站。政策可以通过点击“权限”标签上的“桶政策”部分的“编辑”按钮插入。最初将是一个空白(或一些默认脚本)文本区域。我们将使用的政策将是:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "AllowPublicRead",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::pchakrab14-bucket-1/*"
        }
    ]
}

        请注意,这个政策引用了我们作为运行示例使用的桶名称。您需要插入您自己的桶名称。当我们输入这个后,屏幕将显示如下。我们点击页面底部的“保存更改”以保存政策声明。

        最后一步是访问我们刚刚创建的网站。这可以通过一个URL完成,该URL是从您的桶名称和存储您的桶的亚马逊AWS区域的名称组成的唯一字符串。上述网站的索引页面可以通过以下URL访问:

http://pchakrab14-bucket-1.s3-website-us-east-1.amazonaws.com/

        这里我们已经标出构成网站地址的两个唯一名称:

  • pchakrab14-bucket-1是桶名称。您的将会不同。
  • us-east-1是您创建桶的亚马逊区域名称。除非您拥有自己的亚马逊AWS账户,否则您的可能会不同。

        当我们在网站中有其他页面或资源时,我们只需像普通web开发那样将文件名添加到URL中。然而,请注意,文件名区分大小写,而其他web服务器则不区分。区分文件名大小写是HTTP/HTTPS/URL标准的正确实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/655667.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微服务架构下的‘黑带’安全大师:Spring Cloud Security全攻略!

深入探讨了微服务间的安全通信、安全策略设计以及面对经典安全问题的应对策略。无论你是微服务的新手还是资深开发者&#xff0c;都能在本文中找到提升安全功力的秘籍。让我们一起成为微服务架构下的‘黑带’安全大师&#xff01; 文章目录 1. 引言微服务安全挑战与重要性Sprin…

前后端 | 低代码平台之 Erupt

前文提要 最近大家是不是都有那种危机感&#xff0c;项目变多了&#xff0c;工时压紧了&#xff0c;老板说&#xff0c;我不管你加不加班&#xff0c;我只看结果&#xff0c;项目经理说&#xff0c;我不管你用什么技术栈&#xff0c;我只要没BUG&#xff0c;测试说&#xff0c…

【SQL学习进阶】从入门到高级应用(一)

文章目录 MySQL命令行基本命令数据库表的概述初始化测试数据熟悉测试数据 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01; &#x1f49d;希望您在这里可以感受到一份轻松愉快的氛围&#x…

算法002:复写零

力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/duplicate-zeros/ 使用 双指针 来解题&#xff1a; 具体思路 如果是和00…

【Linux】线程安全及锁的使用

文章目录 前言一、锁1.定义一个锁变量2.pthread_mutex_init3.pthread_mutex_destroy4.pthread_mutex_lock/pthread_mutex_unlock5.静态变量锁和全局变量锁的初始化 二、问题描述及锁的运用三、RAII风格的锁 前言 临界资源: 在多个线程或进程间共享的资源. 临界区: 代码中访问临…

echarts-象形柱图

象形柱图 一般的柱图都是纯色柱图&#xff0c;使用象形柱图可以给柱图定义自己的样式。 样式的调节与柱图一样&#xff0c;核心在于symbol调节柱图的组成。 let options {tooltip: {},xAxis: {type: "category",data: ["d1", "d2", "d3&qu…

【CTF Web】NSSCTF 3868 [LitCTF 2023]这是什么?SQL !注一下 !Writeup(SQL注入+报错注入+括号闭合+DIOS)

[LitCTF 2023]这是什么&#xff1f;SQL &#xff01;注一下 &#xff01; 为了安全起见多带了几个套罢了o(▽)q 出题人 探姬 解法 先试试这个&#xff1a; )))))) or 11 -- 有结果了&#xff0c;但是这个 flag 是假的。 flag 可能在其他表里。用 hackbar 上 DIOS payload。 …

git教程(IDEA + 命令行)

首先假设你已经安装 git 且 已经初始化完成&#xff1a; // 初始化git config --global user.name "你的用户名" git config --global user.email "你的邮箱"在当前文件夹下创建一个仓库&#xff0c;且该文件夹下会有多个项目 首先在当前文件夹下新建git…

python--pycharm中将venv删除后怎么办

在终端中输入以下命令来创建一个新的虚拟环境&#xff08;可选&#xff09;&#xff1a; python -m venv venv 激活虚拟环境&#xff1a; Windows: .\venv\Scripts\activate选择自己项目的虚拟环境

网络故障排除—NAT-源进源出

多网络双出口一边是运营商A,一边是运营商B&#xff0c;将内网服务器分别映射到运营商B和运营商A出口。查了保证内部上网用户网速快管理员开启了运营商选路功能&#xff0c;运营商B的网站从运营商B出去&#xff0c;然后写有两条等价默认路由分别指向两个外网出口。营商A的网站从…

Angular(1):使用Angular CLI创建空项目

要创建一个空的 Angular 项目&#xff0c;可以使用 Angular CLI&#xff08;命令行界面&#xff09;。以下是使用 Angular CLI 创建一个新项目的步骤&#xff1a; 1、安装 Angular CLI&#xff1a; 打开你的命令行界面&#xff08;在 Windows 上是 CMD、PowerShell 或 Git Bas…

渲染管线——应用阶段

知识必备——CPU和GPU 应用阶段都做了什么 应用阶段为渲染准备了什么 1.把不可见的数据剔除 2.准备好模型相关数据&#xff08;顶点、法线、切线、贴图、着色器等等&#xff09; 3.将数据加载到显存中 4.设置渲染状态&#xff08;设置网格需要使用哪个着色器、材质、光源属性等…

区间类贪心,蓝桥云课 打折

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 0打折 - 蓝桥云课 (lanqiao.cn) 二、解题报告 1、思路分析 思路很简单&am…

回答篇二:测试开发高频面试题目

引用之前文章&#xff1a;测试开发高频面试题目 本篇文章是回答篇&#xff08;持续更新中&#xff09; 1. 在测试开发中使用哪些自动化测试工具和框架&#xff1f;介绍一下你对其中一个工具或框架的经验。 a. 测试中经常是用的自动化测试工具和框架有Selenium、Pytest、Postman…

“盲人独立生活技能提升方案”:科技点亮希望之光

在追求平等与包容的社会进程中&#xff0c;盲人群体的独立生活能力提升成为了重要议题。随着科技的飞速发展&#xff0c;一款名为“蝙蝠避障”的辅助软件应运而生&#xff0c;以其独特的实时避障和拍照识别功能&#xff0c;为盲人在旅行乃至日常生活中开辟了新的可能。这不仅是…

OS复习笔记ch7-1

存储的基本管理需求 重定位 重定位(Relocation)&#xff1a;需要解决可执行文件中地址&#xff08;指令和数据&#xff09;和内存地址的对应。 一般有两种比较常见的重定位方式&#xff1a; 静态重定位(static relocation)&#xff1a;当程序被装入内存时&#xff0c;一次性…

刷代码随想录有感(81):贪心算法——分发饼干

题干&#xff1a; class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(), g.end());sort(s.begin(), s.end());int index s.size() - 1;int res 0;for(int i g.size() - 1; i > 0; i--){if(index >…

SpringBoot使用redis结合mysql数据库(黑名单)渲染商品详情界面

目录 一、界面效果 二、前端代码 三、后端代码&#xff08;redisblacklist&#xff09; 3.1 ProducatController 3.2 ProductService 3.3 ProductDao 3.4 映射文件 一、界面效果 二、前端代码 商品详情前端代码 <template><van-nav-bartitle"商品详情&quo…

Redis 事件机制 - AE 抽象层

Redis 服务器是一个事件驱动程序&#xff0c;它主要处理如下两种事件&#xff1a; 文件事件&#xff1a;利用 I/O 复用机制&#xff0c;监听 Socket 等文件描述符上发生的事件。这类事件主要由客户端&#xff08;或其他Redis 服务器&#xff09;发送网络请求触发。时间事件&am…

IDEA提示Untrusted Server‘s certificate

如果你用的是Intellij系列IDE&#xff08;GoLand, PHPStorm, WebStorm, IDEA&#xff09;&#xff0c;突然弹出个提示『Untrusted Servers certificate 』 莫慌&#xff0c;这是因为你用了破解版的 IDE&#xff0c;破解过程中有个hosts绑定的操作&#xff1a; 0.0.0.0 account.…