搭建基于OSS的图片分享网站

本文涉及的产品
对象存储 OSS,20GB 3个月
应用型负载均衡 ALB,每月750个小时 15LCU
公网NAT网关,每月750个小时 15CU
简介: 参与体验产品,提交反馈,就有机会获得定制背包,T恤,以及5到100元对象存储OSS专属代金券~反馈地址:[https://developer.aliyun.com/adc/series/ysmb2]

“云上漫步”第二期-反馈有礼

参与体验产品,提交反馈,就有机会获得定制背包,T恤,以及5到100元对象存储OSS专属代金券~
反馈地址:https://developer.aliyun.com/adc/series/ysmb2

简介

(阿里云资源无费用无门槛,免费取用)
本场景将提供一台配置了CentOS 7.7操作系统的ECS实例(云服务器)和一个对象存储OSS。通过本教程的操作,您可以基于CentOS 7.7操作系统的ECS实例和文件存储OSS,搭建一个图片分享网站。

背景知识

云服务器ECS
云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务,免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。

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

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

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

获取资源后连接ECS服务器

本步骤将指导您如何使用Workbench远程连接ECS服务器。

1、双击打开虚拟桌面的Chromium浏览器。

2、在RAM用户登录框中单击下一步,并复制粘贴页面左上角的子用户密码到用户密码输入框,点击登录。

3、复制下方地址,在Chromium浏览器打开新页签,粘贴并访问云服务器ECS控制台。

https://ecs.console.aliyun.com

4、在左侧导航栏中,选择实例与镜像>实例。
370512f1595d4eb89ab30d05e5a325aa.png

5、在实例页面顶部,选择资源所在地域。例如下图中,地域切换为华东2(上海)。

p349125.png

6、在实例页面,找到您的ECS实例,单击操作列下的远程连接。

说明 :您可在云产品资源列表中查看目标实例的实例ID。
685ed8d7175b469d86e9f1dd3623a75a.png

f311a2bdee6448be89c9c416ca807ae2.png

7、在远程连接与命令对话框的Workbench远程连接区域中,单击立即登录。

p349130.png

8、在登录实例对话框中,输入ECS服务器的密码,单击确定。

说明:您可以在云产品资源列表中查看到您的ECS服务器密码。

p349131.png

返回如下页面,表示您已经成功远程连接到ECS服务器。

f0aea0b97c1743fb892cd9440448a2a9.png

展示基于ECS的图片分享网站

本步骤为您展示基于ECS已搭建完成的图片分享网站,以及图片分享网站的源码。

1.在Chromium浏览器打开新页签,在地址栏输入http://<ECS公网地址()弹性IP)>,访问图片分享网站。

说明 :您可以在云产品资源列表中查看到您的ECS云服务器的弹性IP。

返回如下页面,您可以查看到当前页面中显示1张 “花园” 的图片,该图片实际是由 4 张小图片组成的。
f2bfb17d9af143319345df8ce00de0c3.png

  1. 切换至Workbench远程连接页签,执行如下命令,进入网站系统的根目录。
cd /alidata/www/default

3.执行如下命令,查看网站系统的根目录下的文件。

ls

返回结果如下,您可以在该目录下看到有01.png、02.png、03.png和04.png四张图片,图片分享网站所展示的“花园”图片就是由这四张图片组成。
66d5e8b565fb47868bc90f3a38055c8b.png

4.在Chromium网页浏览器打开新页签,在地址栏中输入http://<ECS服务器的弹性IP)>/01.png并访问。

返回如下页面,您可以看到01.png的图片内容。重复第四步,您可以看到02.png, 03.png和04.png的图片内容。

c123e5bdf3354e099d3903e95f7ddcc2.png

5.执行如下命令,查看图片分享网站的源码。

cat index.html
返回如下结果,您可以看到图片分享网页中显示的图片,是从网站系统根目录/alidata/www/default中,读取图片01.png,02.png,03.png和04.png拼接的。

1fd8390917b64864b717c2ec750d339f.png

搭建基于ECS和OSS图片分享网站

本步骤将指导您如何在ECS实例上调用OSS API上传图片到OSS中。

1、在Workbench远程连接页签,配置cfg.json文件中的OSS信息。

1)执行如下命令,编辑cfg.json文件。

vim cfg.json

2)按下i键进入编辑模式。

3)按i键进入编辑模式,分别找到以下参数,并将以下参数根据实际情况进行修改。

{
    "id": "LTAI*****B3LE877v",
    "secret": "vMkd5******DEAP4",
    "endpoint": "oss-cn-shanghai.aliyuncs.com",
    "bucket": "adc-oss-1****2",
    "obj_dir": "******"
}

参数说明:

id:云产品资源列表中的AK ID。
secret:云产品资源列表中的AK Secret。
endpoint:云产品资源列表中OSS的Endpoint外网域名。
bucket:云产品资源列表中OSS的Bucket名称。
object_dir:云产品资源列表中OSS的Object路径。
添加后的文件内容如下所示。

631d33f21f224d71a18c09f7c25b4aba.png

4)按下Esc键后,输入:wq后按下Enter键保存并退出。

2、执行如下命令,将01.png上传到OSS的Object路径中。

说明:

该脚本使用OSS提供的API接口put_object_from_file(),将本地文件上传到云产品资源列表OSS的Object路径中。通过Python SDK的方式上传本地文件到OSS的具体方法,请参考实验SL003 使用OSS API上传和下载文件。

python oss_upload.py 01.png

返回结果如下,表示您已成功把01.png上传到OSS的Obeject中。

f8cf376732b24efb8cc4154168481705.png

3、分别执行如下命令,将02.png、03.png和04.png三张图片分别上传到OSS的Object路径中。

python oss_upload.py 02.png
python oss_upload.py 03.png
python oss_upload.py 04.png

4、复制下方地址,在Chromium网页浏览器打开新页签,粘贴并访问OSS控制台。

https://oss.console.aliyun.com/

5、在对象存储OSS管理控制台左侧导航栏中,单击Bucket列表。
a3b9e8df1e8b46338ff5fd93686b0bac.png

6、在Bucket列表页面,单击Bucket名称。

说明 :您可以在云产品资源列表中查看到您的OSS的Bucket名称。

a96263c2f926488e8cda0f4c2b575fdd.png

7、在文件管理页签,您可以看到当前Object列表中存在一个或多个文件夹。根据云产品资源列表中OSS的Object一级路径,单击相应的文件名。

说明 :如果云产品资源列表中OSS的Object路径为OSSCTY/u-xxx/,则OSSCTY为一级Object路径。
ae166ce5a1814ddda4bee1ef45d6348a.png

8、在Object一级路径中,根据云产品资源列表中OSS的Object二级路径,单击相应的文件名。

说明 :如果云产品资源列表中OSS的Object路径为OSSCTY/u-xxx/,则u-xxx为二级Object路径。

087fd8b48bd9419c98215a42eb6f23f4.png

返回如下页面,您可以在OSS的Object二级路径中,看到从ECS实例上传到OSS的四张图片。
34a8d1c996fe4dc882e7f47b2f5a41c4.png

读取OSS存储图片

本步骤将指导您如何修改图片分享网站的源码,实现图片分享网站从OSS中读取图片。

1、切换至Workbench远程连接页签,执行如下命令,删除当前目录中的所有.png文件。

rm -rf *.png

2、执行如下命令,查看当前目录文件。

ls
返回如下结果,您可以看到四张图片已经删除。
59b6c22e8fde4ed6bda019a3d674d273.png

3、在Chromium网页浏览器打开新页签,在地址栏中输入http://<ECS服务器的弹性IP)>并访问。

返回如下页面,您可以看到当前页面中所有图片均无法正常显示。这是因为图片分享网站读取的是ECS实例中的图片文件,而ECS实例中的图片文件已被删除,因此无法读取到图片信息。

注意 :若访问页面仍旧可以显示图片,可能是由于浏览器缓存问题,建议清理下浏览器的缓存或者换一个浏览器访问。

99bfe21429244812b4a5bc647be82413.png

4、切换至文件存储OSS管理控制台页签。在文件管理页签中,单击01.png。

2fb196c135c840cdaa411d3b450c5e18.png

5、在详情面板中,单击URL中的复制文件URL。
a9897bd89ff5485285675e0cbae8398f.png

6、切换至Workbench远程连接页签,修改图片分享网站的源码。

1)执行如下命令,编辑index.html。

vim index.html

2)按i键进入编辑模式,找到 下的标签中的src参数,将scr参数修改为第十三步的URL。

3)重复上一步骤,分别修改 下的标签中的src参数。

注意 : 下的标签中的src参数,需要修改为OSS中对应的文件的URL。

修改完成后文件内容如下所示。

3d261a29224b42ed8e623ea90728244c.png

4)按下Esc键后,输入:wq后按下Enter键保存并退出。

7、在Chromium网页浏览器中,在地址栏中输入http://<ECS服务器的弹性IP)>并访问。

返回如下页面,您可以看到“花园”图片,说明现在网站可以使用存储在OSS上的图片来显示页面。

7e194cd074e048dea4684d658283e06c.png

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
2月前
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1455 4
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
1月前
|
弹性计算 数据管理 应用服务中间件
活动实践 | 借助OSS搭建在线教育视频课程分享网站
本教程指导用户在阿里云ECS实例上搭建在线教育网站,包括重置ECS密码、配置安全组、安装Nginx、创建网站页面、上传数据至OSS、开通OSS传输加速、配置生命周期策略及清理资源等步骤,实现高效、低成本的数据管理和网站运营。
活动实践 | 借助OSS搭建在线教育视频课程分享网站
|
2月前
|
存储 人工智能 缓存
AI助理直击要害,从繁复中提炼精华——使用CDN加速访问OSS存储的图片
本案例介绍如何利用AI助理快速实现OSS存储的图片接入CDN,以加速图片访问。通过AI助理提炼关键操作步骤,避免在复杂文档中寻找解决方案。主要步骤包括开通CDN、添加加速域名、配置CNAME等。实测显示,接入CDN后图片加载时间显著缩短,验证了加速效果。此方法大幅提高了操作效率,降低了学习成本。
5477 16
|
2月前
|
算法 Java Linux
java制作海报四:java BufferedImage 转 InputStream 上传至OSS。png 图片合成到模板(另一个图片)上时,透明部分变成了黑色
这篇文章主要介绍了如何将Java中的BufferedImage对象转换为InputStream以上传至OSS,并解决了png图片合成时透明部分变黑的问题。
122 1
|
4月前
|
存储 JavaScript 前端开发
Vue中实现图片上传,上传后的图片回显,存储图片到服务器 【使用对象存储OSS】
这篇文章介绍了在Vue中实现图片上传到阿里云OSS对象存储服务的完整流程,包括服务端签名直传的前提知识、后端设置、前端组件封装以及图片上传和回显的效果展示。
|
5月前
|
运维 Serverless 对象存储
函数计算产品使用问题之如何配合OSS实现接口收到的图片或文件直接存入OSS
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
|
文字识别 算法 安全
视觉智能开放平台产品使用合集之如何将返回的图片链接转存到OSS(对象存储服务)
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
6月前
|
运维 网络协议 Serverless
函数计算产品使用问题之怎么将生成的图片保存到oss上
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
机器学习/深度学习 人工智能 专有云
人工智能平台PAI使用问题之怎么将DLC的数据写入到另一个阿里云主账号的OSS中
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
1月前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。