oss对象存储什么意思,oss对象存储怎么在网站打开
- 综合资讯
- 2024-09-30 17:56:57
- 5

***:本文主要涉及两个关于OSS对象存储的问题。一是对OSS对象存储含义的疑问,OSS对象存储是一种云存储服务,它将数据作为对象进行存储,这些对象包含数据、元数据等,...
***:本文主要涉及两个关于OSS对象存储的问题。一是询问OSS对象存储的含义,OSS对象存储是一种云存储服务,将数据以对象的形式存储在云端,具有高可扩展性、安全性等特点。二是想知道如何在网站打开OSS对象存储,这可能涉及到相关的配置如获取访问权限、设置正确的域名解析、集成相关的SDK等操作,以实现从网站对存储在OSS中的数据进行访问。
《OSS对象存储在网站打开的全面指南:原理、步骤与最佳实践》
一、OSS对象存储是什么意思
OSS(Object Storage Service)即对象存储服务,是一种基于云计算的数据存储方式。
1、对象存储的概念基础
- 在传统的存储体系中,我们可能会接触到像文件系统存储和块存储等方式,而对象存储则有着独特的架构,对象存储中的“对象”是数据存储的基本单位,它包含了数据本身、元数据以及一个全局唯一的标识符,元数据是描述数据的数据,例如对象的创建时间、所有者、访问权限等信息,这种将数据和元数据封装在一起的方式,使得对象存储在管理和检索数据时具有很大的优势。
- 与文件系统存储相比,对象存储不需要像文件系统那样维护复杂的目录结构,在文件系统中,文件的存储和访问依赖于目录树结构,如果目录结构过于复杂或者文件数量庞大,会影响文件的查找和管理效率,而对象存储通过对象的唯一标识符就可以快速定位和访问对象,不受类似文件系统目录结构的限制。
- 相对于块存储,对象存储更适合于存储非结构化数据,如图片、视频、文档等,块存储主要用于为服务器提供直接的磁盘存储,在数据库等对数据块读写性能要求极高的场景下使用较多,对象存储则专注于通过网络提供大规模数据的存储和访问服务。
2、OSS对象存储的特点
海量存储能力:OSS能够轻松存储海量的数据,无论是大型企业的海量业务数据,还是互联网应用中用户产生的大量图片、视频等多媒体内容,OSS都可以有效地进行存储,一个大型的社交网络平台,每天有大量用户上传照片和视频,OSS可以提供足够的存储空间来满足需求。
高可用性:它采用了分布式存储架构,数据被存储在多个节点上,这意味着即使某个节点出现故障,数据仍然可以从其他节点获取,确保了数据的可用性,在阿里云的OSS服务中,数据通过多副本冗余存储在不同的物理设备和数据中心,以应对可能出现的硬件故障、自然灾害等情况。
安全性:OSS提供了多种安全机制,它支持访问控制列表(ACL),可以精确地控制哪些用户或用户组能够对对象进行何种操作,如读取、写入、删除等,数据在传输过程中可以使用SSL/TLS加密协议进行加密,保证数据传输的安全性;在存储过程中,也可以采用服务器端加密技术,防止数据被非法获取和篡改。
低成本:对于企业来说,OSS的成本效益非常高,它采用按需付费的模式,企业只需要根据实际使用的存储空间和流量来付费,与传统的自建存储设施相比,不需要投入大量的硬件设备采购、机房建设和维护成本。
3、OSS对象存储的应用场景
网站和移动应用的静态资源存储:网站中的图片、脚本、样式表等静态资源,以及移动应用中的一些固定内容,都可以存储在OSS中,这样可以减轻网站或应用服务器的负载,提高访问速度,一个电商网站的商品图片,如果存储在OSS中,当用户浏览商品时,可以快速从OSS中获取图片,而不会因为图片的读取占用过多的服务器资源。
企业数据备份与归档:企业可以将重要的数据备份到OSS中,由于OSS的高可靠性和海量存储能力,它可以作为企业长期数据存储的理想选择,对于一些需要遵循法规要求进行数据归档的企业,OSS可以满足其数据安全存储和易于检索的需求。
大数据和人工智能领域:在大数据分析中,OSS可以作为数据湖的存储底座,存储海量的原始数据,在人工智能领域,训练模型所需的大量数据集也可以存储在OSS中,方便数据科学家进行数据的获取和处理。
视频和音频流媒体服务:对于视频和音频流媒体平台,OSS可以存储大量的视频和音频文件,它可以与内容分发网络(CDN)结合使用,当用户请求观看视频或收听音频时,能够快速从离用户最近的CDN节点获取数据,而CDN节点可以从OSS中获取原始文件进行缓存和分发,提高用户的观看和收听体验。
二、OSS对象存储在网站打开的步骤
1、注册OSS服务并创建存储空间(Bucket)
- 以阿里云OSS为例,首先需要在阿里云平台上注册账号并开通OSS服务,在开通服务后,进入OSS控制台,创建一个新的存储空间(Bucket),在创建Bucket时,需要设置一些基本参数,如Bucket名称(在整个OSS服务中是唯一的)、所属地域(不同地域可能会影响数据的访问速度和成本)、存储类型(例如标准存储、低频访问存储、归档存储等,根据数据的访问频率选择合适的存储类型)等。
- 还需要设置Bucket的访问权限,如果希望在网站上能够访问存储在Bucket中的对象,可以设置为公共读权限或者通过使用临时访问凭证来控制访问,需要注意的是,设置公共读权限可能存在一定的安全风险,所以在生产环境中需要谨慎使用。
2、上传对象到OSS
- 可以使用多种方式上传对象到OSS,一种常见的方式是通过OSS提供的控制台界面进行上传,在OSS控制台中,选择对应的Bucket,然后点击上传按钮,选择要上传的本地文件或文件夹,这种方式适合于少量文件的上传。
- 对于大量文件的上传,或者需要在程序中自动上传文件的情况,可以使用OSS的SDK(软件开发工具包),OSS提供了多种语言的SDK,如Java、Python、.NET等,以Python为例,首先需要安装阿里云OSS的Python SDK(oss2),然后通过编写代码来实现文件的上传,示例代码如下:
import oss2 阿里云账号AccessKey拥有所有API的访问权限,风险很高,强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。 access_key_id = '<your - access - key - id>' access_key_secret = '<your - access - key - secret>' endpoint = 'http://oss - cn - hangzhou.aliyuncs.com' bucket_name = '<your - bucket - name>' 创建Bucket对象 auth = oss2.Auth(access_key_id, access_key_secret) bucket = oss2.Bucket(auth, endpoint, bucket_name) 上传文件 local_file_path = 'local_file.txt' object_name = 'uploaded_file.txt' bucket.put_object_from_file(object_name, local_file_path)
- 还可以使用OSS的命令行工具(ossutil)进行上传,ossutil是一个命令行工具,它可以方便地执行各种OSS操作,如上传、下载、删除等,首先需要从OSS官方网站下载并安装ossutil,然后进行配置(配置访问密钥等信息),之后就可以使用命令行来上传文件了,ossutil cp local_file oss://bucket_name/object_name
。
3、在网站中集成OSS对象访问
直接链接访问
- 如果在Bucket中设置了公共读权限,那么可以直接通过对象的URL在网站中访问对象,在HTML页面中,如果要显示一张存储在OSS中的图片,可以使用<img src="http://bucket - name.oss - cn - hangzhou.aliyuncs.com/object - name.jpg">
这样的标签,其中bucket - name
是OSS中的Bucket名称,oss - cn - hangzhou.aliyuncs.com
是OSS的服务端点(根据实际地域可能会有所不同),object - name.jpg
是存储在OSS中的图片对象名称。
- 但是这种方式存在安全隐患,因为任何人只要知道这个URL就可以访问对象,为了提高安全性,可以使用OSS的签名URL,签名URL是一种带有临时访问权限的URL,它通过使用OSS的签名算法,在URL中添加了一些验证信息,只有在有效期内并且验证通过的情况下才能访问对象,在Python中,可以使用OSS SDK来生成签名URL:
假设已经创建了Bucket对象(bucket) object_name = 'example.jpg' 设置签名URL的有效期,这里设置为60秒 expires = 60 signed_url = bucket.sign_url('GET', object_name, expires)
通过后端服务代理访问
- 在一些情况下,不希望直接暴露OSS的访问路径给前端网站,而是通过后端服务进行代理访问,使用Node.js开发的后端服务器,可以在后端服务器中使用OSS的SDK来获取对象,然后将对象的内容返回给前端网站,以下是一个简单的Node.js示例代码:
const oss = require('ali - oss');
// 配置OSS信息
const client = new oss({
region: 'oss - cn - hangzhou',
accessKeyId: '<your - access - key - id>',
accessKeySecret: '<your - access - key - secret>',
bucket: '<your - bucket - name>'
});
// 定义一个路由来获取OSS中的对象并返回给前端
const express = require('express');
const app = express();
app.get('/get - oss - object', async (req, res) => {
const objectName = 'example.jpg';
try {
const result = await client.get(objectName);
res.contentType(result.contentType);
res.send(result.content);
} catch (e) {
console.log(e);
res.status(500).send('Error getting object from OSS');
}
});
const port = 3000;
app.listen(port, () => {
console.log(Server running on port ${port}
);
});
- 在这种方式下,前端网站只需要向后端服务器发送请求(例如http://backend - server - address/get - oss - object
),后端服务器负责与OSS交互并返回对象内容给前端,这样可以更好地控制访问权限,例如可以在后端服务器中进行用户身份验证等操作。
三、OSS对象存储在网站打开的最佳实践
1、安全方面
访问控制策略优化
- 尽量避免使用公共读权限,如果必须使用,要确保对象内容不会包含敏感信息,对于大多数情况,应该使用基于角色的访问控制(RBAC)或者临时访问凭证来控制对OSS对象的访问,可以创建不同的用户角色,如管理员、普通用户等,为每个角色分配不同的OSS操作权限,管理员可能具有对Bucket的完全控制权,包括创建、删除对象和修改Bucket属性等操作;而普通用户可能只具有读取对象的权限。
- 在使用临时访问凭证时,要合理设置凭证的有效期和权限范围,凭证的有效期不宜过长,以减少凭证被泄露后可能造成的风险,根据业务需求精确设置凭证的权限,例如只允许对特定的对象或对象前缀进行操作。
数据加密
- 启用OSS的服务器端加密功能,对存储在OSS中的重要数据进行加密,这样即使数据在存储过程中被非法获取,没有解密密钥也无法获取数据的真实内容,在传输数据时,要确保使用SSL/TLS加密协议,防止数据在传输过程中被窃取或篡改。
2、性能优化
选择合适的存储类型和地域
- 根据对象的访问频率选择合适的存储类型,如果对象是经常被访问的热点数据,如网站的首页图片等,应该选择标准存储,以保证快速的访问速度;如果是一些不经常被访问的数据,如企业的历史备份数据,可以选择低频访问存储或者归档存储,以降低存储成本。
- 在选择OSS的地域时,要考虑到目标用户的地理位置分布,如果网站的主要用户群体在某个特定地区,选择距离该地区较近的OSS地域可以减少数据的传输延迟,提高访问速度,如果网站的大部分用户在欧洲,选择欧洲的OSS地域节点会比选择亚洲的节点在数据传输上更有优势。
与CDN结合使用
- 将OSS与内容分发网络(CDN)结合起来,可以进一步提高网站的访问速度,CDN通过在全球各地部署节点,将OSS中的静态资源缓存到离用户最近的节点上,当用户请求访问网站中的静态资源时,首先从CDN节点获取数据,如果CDN节点没有缓存该数据,则从OSS中获取并缓存到CDN节点,以便下次用户访问时可以更快地提供服务,对于一个全球性的新闻网站,图片和视频等静态资源存储在OSS中,通过与CDN结合,可以让全球不同地区的用户都能快速地访问这些资源。
3、数据管理
对象生命周期管理
- 建立对象的生命周期规则,对存储在OSS中的对象进行有效的管理,可以设置规则,对于超过一定时间没有被访问的对象,自动将其转换为低频访问存储或者归档存储,以降低存储成本,也可以设置规则,对于一些已经过期或者不再需要的对象,自动进行删除操作。
元数据管理
- 充分利用对象存储中的元数据功能,在上传对象时,可以添加一些自定义的元数据,如对象的分类信息、版本信息等,这些元数据可以方便后续的数据管理和检索,在一个图片存储的场景中,可以添加元数据来标识图片的拍摄日期、拍摄地点、摄影师等信息,以便在需要的时候可以根据这些元数据快速查找特定的图片。
OSS对象存储在网站打开涉及到多个方面的知识和操作,从理解OSS的基本概念到实际的部署、集成和优化,每个环节都需要仔细考虑,以确保在网站中能够安全、高效地访问OSS中的对象。
本文链接:https://www.zhitaoyun.cn/97395.html
发表评论