用户权限网站,精准客源,图片展示网站,it外包项目在现代互联网应用中#xff0c;数据存储是一个不可忽视的环节。随着数据量的不断增长#xff0c;传统的存储方式已经无法满足高速、低成本、大容量的需求。阿里云 OSS#xff08;对象存储服务#xff09;作为一种高性能、低成本且具备高度扩展性的云存储服务#xff0c;已… 在现代互联网应用中数据存储是一个不可忽视的环节。随着数据量的不断增长传统的存储方式已经无法满足高速、低成本、大容量的需求。阿里云 OSS对象存储服务作为一种高性能、低成本且具备高度扩展性的云存储服务已经成为许多企业和开发者的首选存储方案。 文章目录 阿里云 OSS概述核心特性 阿里云 OSS 基础概念阿里云 OSS 使用的典型场景静态文件存储数据备份与归档静态网站托管 Python使用阿里云OSS实践 阿里云 OSS概述
阿里云 OSSObject Storage Service是阿里云提供的对象存储服务它使得用户能够通过 Web 服务接口管理和存储海量数据。OSS 提供了高可用、高扩展性和高安全性的存储解决方案适用于各类数据存储需求从图片、音视频文件到日志数据、备份数据等都可以在 OSS 中存储。
核心特性
● 高可用性提供数据可靠性。 ● 弹性扩展存储容量和带宽都能根据需求自动扩展。 ● 低成本按需付费、按量计费灵活定制存储方案。 ● 多种存储类型支持标准存储、低频存储、归档存储等。 阿里云 OSS 基础概念
● Bucket存储空间OSS 中存储文件的基本单位。每个 Bucket 都位于指定的区域内。 ● Object对象即存储在 OSS 中的文件包含文件本身和元数据如文件名、大小、类型等。 ● Endpoint访问地址访问 OSS 服务的网络地址根据 Bucket 所在的区域不同Endpoint 也不同。 ● AccessKey认证机制用于身份认证的凭证包括 AccessKey ID 和 AccessKey Secret。 阿里云 OSS 使用的典型场景
静态文件存储
阿里云 OSS 是静态文件存储的理想选择。你可以将网站的图片、音视频等静态文件上传至 OSS并通过公共 URL 进行访问。 示例 假设你有一张图片 example.jpg通过 OSS 上传后可以获得类似以下的 URL 地址 https://your-bucket-name.oss-cn-region.aliyuncs.com/example.jpg
数据备份与归档
OSS 适用于存储海量数据的备份和归档。比如定期备份数据库文件或日志数据将其上传到 OSS确保数据安全可靠。
静态网站托管
可以将 HTML、CSS、JavaScript 等静态文件上传至 OSS通过配置该 Bucket 为公共读权限将其用作静态网站的托管平台。 示例
上传静态文件例如 index.html。配置 Bucket 的权限为公共读。在 OSS 控制台中开启网站托管设置网站首页文件为 index.html。 Python使用阿里云OSS实践
安装oss2库 pip3 install oss2阿里云控制台上创建一个OSS存储空间Bucket并获取访问密钥IDAccess Key ID和访问密钥密钥Access Key Secret
import oss2
import osclass OssConn(object):def __init__(self):# 配置阿里云OSSEND_POINT xxxx # 服务器的端点指定服务的网络位置服务器的域名或者IP地址BUCKET1 xxxx # 存储空间名称accessKeyId xxxx # 访问密钥IDaccessKeySecret xxxx # 访问密钥秘钥self.upload_path xxxx# 创建OSS服务的客户端auth oss2.Auth(accessKeyId, accessKeySecret)self.bucket_path END_POINT / BUCKET1self.bucket oss2.Bucket(auth, END_POINT, BUCKET1)def upload(self, local_file, object_name):oss2.resumable_upload(self.bucket, object_name, local_file)#返回http地址return self.upload_path object_namedef download(self, object_name, local_file):oss2.resumable_download(self.bucket, object_name, local_file)def delete(self, object_name):self.bucket.delete_object(object_name)def upload_dir(self, local_dir, object_dir):for file in os.listdir(local_dir):self.upload(local_dir / file, object_dir /file)if __name__ __main__:oc OssConn()result oc.upload(xxxx, example.mp4)print(result)