【阿里云ECS进阶训练营】day05ACA认证OSS实验汇总

实验一:云存储OSS使用初体验

1.1实验概述

开始实验后,系统会自动去创建一台Linux ECS。其中,创建的ECS中已经部署了web应用和OSS python SDK。在本实验中,已创建的ECS作为web服务器,浏览器中直接访问其IP地址会显示包含四个小图片的页面,并且四个图片都保存在ECS本地。通过调用OSS API将四个图片上传到OSS中,同时删除保存在ECS本地的四个图片,此时访问ECS IP将会看到页面中没有图片可以显示。为了在页面中显示原有的四个图片,实验中需要修改web应用服务器根目录下默认访问页面中的图片地址,将图片地址修改为四个图片分别在OSS中的访问地址。
在这里插入图片描述

实验目标
完成此实验后,可以掌握的能力有:

  1. 通过阿里云管理控制台管理对象存储服务OSS

  2. 在实际的web开发中使用对象存储服务OSS存储页面中的图片

  3. 调用OSS API上传图片

学前建议
4. 掌握Linux基本命令;

  1. 了解OSS的基本概念

1.2实验步骤

1.背景介绍:
阿里云对象存储(Object Storage Service,简称OSS),是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。用户可以通过调用API,在任何应用、任何时间、任何地点上传和下载数据,也可以通过用户Web控制台对数据进行简单的管理。OSS适合存放任意文件类型,适合各种网站、开发企业及开发者使用。

    阿里云OSS图片处理服务(Image Service,简称 IMG) ,是阿里云OSS对外提供的海量、安全、低成本、高可靠的图片处理服务。用户将原始图片上传保存在OSS上,通过简单的 RESTful 接口,在任何时间、任何地点、任何互联网设备上对图片进行处理。图片处理服务提供图片处理接口,图片上传请使用OSS上传接口。基于IMG,用户可以搭建出跟图片相关的服务。图片服务处理的图片来自于OSS,所以图片的上传实际是上传到OSS的同名Bucket中。 

    在真实的工作场景中,一般将图片、音频、视频等存储到OSS服务中,这样可以极大的提高用户的页面访问速度。

2.查看图片分享网站

  1. 本小节将展示一个在ECS上已搭建的图片分享网站,以及图片分享网站的源码。

  2. 首先,在浏览器中新建一个页面。然后,在浏览器的地址栏中,输入本次实验分配的ECS实例 弹性IP。查看到当前页面中显示1张“花园”的图片,该图片实际是由4张小图片组成的。

在这里插入图片描述

  1. 远程登录到ECS服务器,查看图片并分享网站的源码。登录信息请使用本实验 实验资源 提供的ECS服务器的 外网地址,用户名和 密码。

  2. 登录到ECS服务器后,执行如下命令,进入网站系统的根目录。

# cd /alidata/www/default 

然后,使用如下查看命令,查看保存在根目录下的四张图片01.png,02.png,03.png和04.png,也就是图片分享网站所展示的4张小图片。

# ls

在浏览器中,新建一个页面,并在地址栏中输入 <ECS实例外网地址>/01.png,可以查看到01.png的图片内容。同理,可以查看"02.png","03.png"以及“04.png”的图片内容。
在这里插入图片描述

  1. 使用如下命令,查看网站首页的源码,可以看到图片分享网页中显示的图片,是从网站根目录 /alidata/www/default 中,读取图片 01.png,02.png,03.png 和 04.png拼接的。

cat index.html

在这里插入图片描述
3.向OSS中上传服务器本地图片

  1. 本小节将存储在本地的图片上传到OSS Bucket中,从而,图片分享网站将从OSS Bucket中读取图片,本地无需保存图片。

  2. 在ECS实例的 /alidata/www/default 目录中,执行如下命令,进入 cfg.json 的编辑页面,并修改OSS的配置信息。

# vim cfg.json

在编辑页面中,修改如下参数信息。

id:云中沙箱 实验资源 分配的 AK ID 值;

secret:云中沙箱 实验资源 分配的 AK Secret 值

endpoint:请根据下面的 OSS地域与Endpoint对应关系表,输入 实验资源 所分配 地域 相对应的 外网Endpoint
。例如:分配的 地域

为 华东1(杭州),则输入 oss-cn-hangzhou.aliyuncs.com。

bucket:云中沙箱 实验资源 分配的 OSS资源 Bucket 名称

object_dir:云中沙箱 实验资源 分配的 OSS资源 Object路径。

完成后,首先按 esc键 退出编辑状态,然后输入下面命令保存并退出编辑页面。

 :wq 

OSS地域与外网Endpoint对应关系表:

地域 外网Endpoint
华东 1 (杭州) oss-cn-hangzhou.aliyuncs.com
华东 2 (上海) oss-cn-shanghai.aliyuncs.com
华北 1 (青岛) oss-cn-qingdao.aliyuncs.com
华北 2 (北京) oss-cn-beijing.aliyuncs.com
华南 1 (深圳) oss-cn-shenzhen.aliyuncs.com
3. 执行如下命令,将01.png上传到OSS,该脚本使用OSS 提供的API接口put_object_from_file()将本地文件上传到 实验资源 分配的 Object路径 中。
//因为这里的环境已经有python的sdk环境,所以这里能直接使用。

python oss_upload.py 01.png

然后,执行相同命令,只把 01.png 改为 02.png 等,将02.png、03.png 和 04.png三个图片分别上传到OSS。接下来,用户将访问OSS管理控制台,并查看上传到OSS的文件。
4.然后登陆到OSS控制台查看图片的信息。
在这里插入图片描述
4.使用OSS存储图片分享网站

  1. 本小节中,搭建的图片分享网站将图片等静态资源,存储在OSS中,并直接从OSS中读取。

  2. 返回ECS实例终端页面,执行下面命令进入alidata/www/default目录。

# cd /alidata/www/default

然后执行如下命令,删除当前目录中的所有“.png”文件,也就是,图片分享网站中读取的4张图片01.png, 02.png, 03.png 和 04.png。

# rm -rf *.png

执行查看文件命令,查看当前目录中无图片文件,证明图片已删除。

# ls

在这里插入图片描述
3. 打开(在浏览器的地址栏中,输入 实验资源 分配的ECS 外网地址 并访问)或刷新图片分享网站主页面,查看到当前页面中所有图片均无法正常显示。这是因为图片分享网站读取的是本地图片文件,而本地存储的图片文件已被删除,因此无法读取到图片信息。

注意:若访问页面仍旧可以显示图片,可能是由于浏览器缓存问题,建议清理下浏览器的缓存或者换一个浏览器查看ECS服务器主页。
在这里插入图片描述
4. 接下来,将重新配置index.html中的图片访问信息,按照以下步骤将图片链接修改为上传到OSS的图片的URL访问地址:
5. 执行如下命令返回ECS服务器的/alidata/www/default目录下,并进入服务器访问首页 index.html 的编辑界面。

# cd /alidata/www/default
# vim index.html

将图片的src属性改为OSS上图片的URL。
在这里插入图片描述
改变后保存文件。在浏览器中打开新建地址发现又可以显示图片了。

实验二:使用云存储OSS的API上传和下载文件

1.实验概述

实验概述
实验开始后,系统会自动去创建一台Linux ECS。且ECS实例已经部署了OSS python SDK。用户可以使用OSS Python SDK来访问OSS服务,包括上传文件,下载文件,查看文件列表等。默认这些程序是写在一个脚本文件里,通过Python程序可以执行。OSS上传方式大致可以分为两类:简单上传和分块上传。本实验通过OSS的Python SDK,使用简单上传的方式实现小文件的上传和下载;最后指导您实现如何去删除OSS Bucket。

实验目标
完成此实验后,可以掌握的能力有:

  1. 使用OSS python SDK来调用OSS API

  2. 掌握OSS简单上传的方式

  3. 掌握OSS分块上传的方式

  4. 使用OSS python SDK快速删除OSS Object

学前建议

  1. 了解Linux的基本命令操作;

  2. 了解Python语言的基本使用方法;

2.实验步骤

2.1调用OSS API上传小文件

  1. OSS 上传方式分为两类:简单上传和分块上传;其中,简单上传由于不支持断点续传,适合用于上传小文件;而分块上传支持断点续传,适合上传比较大的文件,一般超过100MB 的文件都推荐使用分块上传。 本小节中,使用OSS Python SDK 调用 OSS API,将用户本地的小文件上传到本次实验分配的 Object路径 中。
  2. 登录到 ECS 服务器后,在使用 OSS API 进行文件上传和下载之前,用户需配置阿里云账号的 AccessKeyID, AccessKeySecret 和 Endpoint 信息(均可从 实验资源 获取),以便于通过 OSS 的权限验证。在 ECS 命令行中,使用命令 cd aliyun-lab 进入 aliyun-lab 目录。 然后,使用命令 vim configure.json ,configure.json 文件用于提供调用 OSS API 时所需的公共参数。
    在这里插入图片描述

id-参数值为本实验中,实验资源 分配的AK ID;

secret-参数值为本实验中,实验资源 分配的AK Secret;

endpoint-参数值为本实验中,实验资源 的“地域”对应的“外网Endpoint”数值。比如:提供的“地域”为“华东 1(杭州)”,则选择“华东 1(杭州)”的“外网Endpoint”。
OSS 地域与外网 Endpoint 的对应关系如下表:
华东 1 (杭州)
oss-cn-hangzhou.aliyuncs.com
华东 2 (上海)
oss-cn-shanghai.aliyuncs.com
华北 1 (青岛)
oss-cn-qingdao.aliyuncs.com
华北 2 (北京)
oss-cn-beijing.aliyuncs.com
华南 1 (深圳)
oss-cn-shenzhen.aliyuncs.com
注意:任何键值对中都不可以有换行或空格符,否则就会报错
3. 完成 OSS 的基本配置信息后,在 aliyun-lab 路径下,执行命令 vim object_upload.py ,修改脚本文件 object_upload.py 。此脚本通过调用 OSS API,上传本地文件 (__file_name:本地文件路径) 到 bucket 中,并重命名 object (__object_name:Bucket中Object名称) 。在代码的 #调用OSS API的put_object()上传文件 下方,添加如下的代码,完成修改后,保存脚本并退出编辑页面。

with open(__file_name,'rb') as fileobj:

             bucket.put_object(__object_name, fileobj)

在这里插入图片描述
4. 执行如下命令,运行脚本程序。将本地文件 lab.txt 上传到本实验分配 OSS bucket 的 Object 路径下,并重命名为 lab_object.txt 。

python object_upload.py <oss bucket名称> lab.txt <oss object路径>/lab_object.txt

结果:上传成功
在这里插入图片描述

2.2调用OSS API下载小文件

  1. 在真实的工作环境中,存储在 OSS 环境下的文件资源,可能由于业务需求,需要下载到本地,进行审计等。本小节将介绍如何将 OSS 中的对象文件通过 API 下载到本地服务器。
  2. 返回 ECS 服务器访问终端,在 ECS 的 aliyun-lab 目录下,执行命令 vim object_download.py ,修改脚本文件 object_download.py 。此脚本通过调用 OSS API,下载 OSS的 bucket 中名称为 __object_name 的 object 到本地,并重命名为 __local_name 。在代码的 #调用OSS API的get_object_to_file()下载object 下方。添加如下的代码,完成修改后,保存脚本。
bucket.get_object_to_file(__object_name, __local_name)

在这里插入图片描述
3. 执行如下命令,将 OSS 存储的文件 lab_object.txt 下载到本地,并重命名为 lab_local.txt 。下载成功后,执行命令 ls ,列出当前目录下所有的文件,可以看到文件lab_local.txt 已经保存在当前目录下。

python object_download.py <oss bucket 名称> <oss object路径>/lab_object.txt lab_local.txt

在这里插入图片描述
4. 执行命令 cat lab_local.txt 和 cat lab.txt ,分别查看原文件与下载后的文件,对比两个文件中的内容,可以发现两个文件中的内容一致,证明 object 下载并成功保存到本地。

在这里插入图片描述

2.3调用OSSAPI删除Object

  1. 在真实的生产环境中,由于 OSS 主要用于存储对象文件等。因此,为了避免大量的垃圾文件存在,建议用户对垃圾资源进行清理,这样不仅可以节约资源也可以节约用户在存储服务中的开销。本小节中,用户将体验如何通过调用OSS API,清理垃圾 Object 资源。
  2. 返回ECS服务器访问终端界面,然后,执行 vim object_delete.py ,修改脚本文件 object_delete.py 。此脚本通过调用 OSS API ,删除 OSS Bucket 中的 object。在代码的 #调用OSS API batch_delete_objects(),批量删除objects 下方。添加如下的代码,完成修改后,保存脚本。
result = bucket.batch_delete_objects([__object_name])

在这里插入图片描述
执行命令 python object_delete.py <Bucket 名称> <Object路径>/lab_object.txt 。删除 bucket 中的指定路径的 object 。

2.4创建OSS Bucket

  1. 在真实的生产工作环境中,用户在上传或者管理 OSS 中的存储文件之前,首先需要在 OSS 中创建一个 Bucket,也就是 OSS 的存储空间。
  2. 在 ECS 服务器访问终端界面中,执行命令: cd aliyun-lab/ ,进入 aliyun-lab/ 目录下。输入命令:vim bucket_create.py ,修改脚本文件 bucket_create.py 。修改创建 bucket 的 python 脚本。用户可以使用此脚本调用OSS 创建Bucket的 API。在代码的 #调用OSS API的create_bucket()创建bucket 下方。添加如下的代码,完成修改后,保存并退出。
result = bucket.create_bucket()

注意:确保插入的代码,与上下文中非注释的代码缩进一致。否则运行脚本时会报错。
在这里插入图片描述
执行命令:python bucket_create.py lab ,其中 lab 为用户自定义的 bucket 名称,运行脚本程序,创建一个新的bucket lab-xxxx 。
注意:创建的新bucket名称为:<用户输入的自定义bucket名称>-< Access Key ID信息>。这是由于 OSS bucket 全局唯一,避免bucket名称已存在而导致创建错误,此脚本会自动将 Access KeyID 信息,作为 bucket 名称的后缀。输入 bucket 名称时,必须符合如下的 Bucket 命名规则,否则,无法成功创建 bucket。

猜你喜欢

转载自blog.csdn.net/qq_44867340/article/details/106968418