当前位置: 首页 > news >正文

阿里云对象存储OSS(Object Storage Service)全面解析

阿里云对象存储服务(Object Storage Service,简称 OSS) 是一款海量、安全、低成本、高可靠的云存储服务,可提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。多种存储类型供选择,全面优化存储成本。

一、专业术语概览

在这里插入图片描述

1. Bucket

  • 定义:Bucket 是 OSS 中存储对象的容器,所有的对象都必须隶属于某个 Bucket。
  • 特性
  • 在创建Bucket时,首先要为其命名。每个Bucket名称必须全局唯一且不可修改。建议使用业务相关的名称,如 myapp-logs-hangzhou,表示“myapp”产品在杭州地区的日志信息。
  • Bucket分为“有地域属性”和“无地域属性”两种类型。有地域属性的Bucket允许您选择数据中心的物理位置,建议选择靠近业务的地域以提升访问速度。Bucket一经创建地域无法更改
  • Endpoint(访问域名):用于访问OSS的入口,每个地域都有对应的Endpoint。使用API、SDK、ossutil或ossfs等方式访问OSS时,您需要使用Endpoint。
  • 存储类型:OSS提供五种存储类型,分别是标准(默认)、低频、归档、冷归档和深度冷归档,适用于不同存储需求。根据数据使用场景选择合适类型可提升访问速度并降低存储成本。例如,频繁访问的数据可选择标准类型,而长期存储的冷数据适合冷归档。

2. Object

  • 定义:Object 是 OSS 存储的基本单元,也称为文件。一个 Object 可以是任意形式的数据,如文本、图片、视频等。
  • 组成:包括 key(名称)、data(数据本身)和 metadata(元信息)。
  • Key:是Object的名称,类似于文件路径,用于查询Object,具有唯一性。合理的Object名称有助于管理,详细命名规则请参见对象命名。
  • Data:是Object的实际数据,由任意长度的字节组成,类似于文件的内容。
  • Object Meta:Object元数据,是一组键值对,类似于文件属性,如最后修改时间、大小等,也可以存储自定义信息。

在对象存储OSS中,其实并不具备传统文件系统中的文件和文件夹概念,但为了符合用户的使用习惯,OSS通过在Key中添加“/”来模拟文件夹,例如“exampledir/example.jpg”。此时,“exampledir”就被模拟成了一个文件夹,“example.jpg”则模拟成“exampledir”文件夹下的文件名。在OSS控制台和ossbrowser等图形化工具中可以看到这种文件夹结构。但实际上,Object的Key仍然是“exampledir/example.jpg”

二、使用方法详解

1. 创建 Bucket

登录阿里云控制台 -> 进入 OSS 管理页面 -> 点击“创建 Bucket”,填写相关信息即可完成创建。

2. 上传 Object

可以通过阿里云提供的 SDK 或者 API 直接上传 Object 到指定的 Bucket 中。例如,使用 Python SDK:

import oss2auth = oss2.Auth('<Your AccessKey ID>', '<Your AccessKey Secret>')
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<your-bucket-name>')result = bucket.put_object_from_file('object-name', '/path/to/local/file')
print('http status:', result.status)

3. 下载 Object

下载 Object 同样简单,只需要调用相应的接口即可。继续以上面的例子为例:

result = bucket.get_object_to_file('object-name', '/path/to/save/file')
print('http status:', result.status)

4. 删除 Object

当不再需要某个 Object 时,可以将其删除:

result = bucket.delete_object('object-name')
print('http status:', result.status)

5. 设置权限

为了保护你的数据,你可以为 Bucket 或者 Object 设置不同的访问权限。常见的权限设置包括私有读写、公共读私有写等。

# 设置 Bucket 公共读私有写
bucket.put_bucket_acl(oss2.BUCKET_ACL_PUBLIC_READ)
http://www.dtcms.com/a/299742.html

相关文章:

  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘ipython’问题
  • 【计算机组成原理】第一章:计算机系统概述
  • GO 从入门到精通
  • STL——vector
  • GO 从入门到精通2
  • MyBatis-Plus 通用 Service
  • J2EE模式---表现层集成模式
  • MyBatis Plus 对数据表常用注解
  • 进阶数据结构:用红黑树实现封装map和set
  • Sql server查询汇总补缺月份
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 热词评论查询功能实现
  • Android开发中内存泄漏问题治理方案
  • 四通OKI5560SC针式打印机如何复位清零和恢复出厂设置??
  • 昇思学习营-昇思+香橙派+deepseek介绍课程内容及心得
  • Chukonu 阅读笔记
  • Rerank 模型的其中两种路径:BERT 相似度与 CoT 推理
  • 如何应对心事干扰学习工作?
  • 高可用集群KEEPALIVED的详细部署
  • 【CTF-Web】dirsearch寻找download.php进行?path=flag.txt任意文件下载
  • 深入解析命名管道:原理、实现与进程间通信应用
  • 机器学习对中特估股票关键特征选取的应用与研究
  • 【橘子分布式】gRPC(番外篇-监听流)
  • Thinkph6中常用的验证方式实例
  • 【时时三省】(C语言基础)用指向函数的指针作函数参数
  • 网络:应用层
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-30,(知识点:传输线特性阻抗,影响因素)
  • 【web应用】基于Vue3和Spring Boot的课程管理前后端数据交互过程
  • 1、虚拟机安装
  • InfluxDB Flux 查询协议实战应用(二)
  • Linux726 raid0,raid1,raid5;raid 创建、保存、停止、删除