对象存储OSS(一)

本文概述了阿里云OSS对象存储服务的关键特性,包括存储类型(标准、低频、归档、冷归档)的选择,存储空间(Bucket)的配置,以及对象(Object)的管理。了解这些有助于优化数据存储成本和适应不同业务场景。

对象存储服务(Object Storage Service,OSS)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。

相关概念

  • 存储类型(Storage Class)

    OSS提供标准、低频访问、归档、冷归档四种存储类型,全面覆盖从热到冷的各种数据存储场景。其中标准存储类型提供高持久、高可用、高性能的对象存储服务,能够支持频繁的数据访问;低频访问存储类型适合长期保存不经常访问的数据(平均每月访问频率1到2次),存储单价低于标准类型;归档存储类型适合需要长期保存(建议半年以上)的归档数据;冷归档存储适合需要超长时间存放的极冷数据。

  • 存储空间(Bucket)

    存储空间是您用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。存储空间具有各种配置属性,包括地域、访问权限、存储类型等。您可以根据实际需求,创建不同类型的存储空间来存储不同的数据。

  • 对象(Object)

    对象是OSS存储数据的基本单元,也被称为OSS的文件。对象由元信息(Object Meta)、用户数据(Data)和文件名(Key)组成。对象由存储空间内部唯一的Key来标识。对象元信息是一组键值对,表示了对象的一些属性,例如最后修改时间、大小等信息,同时您也可以在元信息中存储一些自定义的信息。

  • 地域(Region)

    地域表示OSS的数据中心所在物理位置。您可以根据费用、请求来源等选择合适的地域创建Bucket。

  • 访问域名(Endpoint)

    Endpoint表示OSS对外服务的访问域名。OSS以HTTP RESTful API的形式对外提供服务,当访问不同地域的时候,需要不同的域名。通过内网和外网访问同一个地域所需要的域名也是不同的。

  • 访问密钥(AccessKey)

    AccessKey简称AK,指的是访问身份验证中用到的AccessKey Id和AccessKey Secret。OSS通过使用AccessKey Id和AccessKey Secret对称加密的方法来验证某个请求的发送者身份。AccessKey Id用于标识用户;AccessKey Secret是用户用于加密签名字符串和OSS用来验证签名字符串的密钥,必须保密。

### 对象存储 OSS 的服务介绍 对象存储(Object Storage Service, OSS)是种海量、安全、低成本、高可靠的云存储服务[^1]。它允许用户通过网络上传、下载和管理数据文件,适用于多种场景,如图片和视频托管、备份存档以及大数据分析。 #### 主要特点 - **弹性扩展**:支持动态调整容量大小,无需提前购买硬件设备。 - **安全性保障**:提供多层次的安全机制,包括访问控制列表 (ACL) 和基于策略的身份验证方式来保护资源不被未授权访问[^2]。 - **高性能传输**:利用分布式架构设计,在全球范围内实现低延迟的数据读写操作。 - **经济高效**:按实际使用的存储空间计费,减少前期投入成本的同时还能享受规模效益带来的价格优势[^3]。 #### 关键概念 以下是使用 OSS 前需理解的些重要术语: - **Bucket**: 存储单元,类似于传统文件系统的目录结构;每个 bucket 下可以存放多个 object 文件。 - **Object/Key**: 表示具体的个文件及其元信息记录;key 是该文件唯标识符。 - **Endpoint**: 访问 OSS API 所必需的目标地址 URL ,不同区域可能有不同的 endpoint 地址配置需求[^4]。 ### 如何开始使用阿里云的对象存储 OSS? 为了能够充分利用 OSS 提供的各项能力,按照如下流程完成初始化设置: #### 创建 Bucket 实例 通过控制台界面或者调用 CreateBucket 接口创建个新的 bucket 容器实例,并指定其所属地域位置参数以优化性能表现[^5]。 ```python import oss2 auth = oss2.Auth('your-access-key-id', 'your-access-key-secret') bucket_name = "example-bucket" endpoint = "http://oss-cn-hangzhou.aliyuncs.com" bucket = oss2.Bucket(auth, endpoint, bucket_name) if not bucket.bucket_exists(): result = bucket.create_bucket(oss2.models.BUCKET_ACL_PRIVATE) print(f'Bucket {bucket_name} created successfully.') ``` #### 数据上传与下载 借助 SDK 工具包轻松实现本地计算机上的文档向云端迁移过程或是相反方向的操作行为。 ##### 上传单个文件至指定路径下 ```python file_path = "/path/to/local/file.txt" object_key = "remote/folder/file.txt" with open(file_path, 'rb') as fileobj: bucket.put_object(object_key, fileobj) ``` ##### 获取远程服务器上已存在的某个特定 key 对应的内容到客户端内存缓冲区中 ```python content = bucket.get_object('existing-object-key').read() print(content.decode()) ``` #### 设置权限管理规则 定义哪些主体拥有何种程度对于某项资产执行 CRUD 动作的权利范围限制条件集合体即 ACL 权限表单形式表达出来并应用上去即可生效[^6]。 ```python acl_config = oss2.ACL('private') result = bucket.put_bucket_acl(acl_config) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值