- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 权限配置指南
-
工具指南
- OBS工具汇总
-
OBS Browser+
- OBS Browser+简介
- OBS Browser+功能概述
- 下载OBS Browser+
- 安装OBS Browser+
- 登录OBS Browser+
- 桶的基本操作
- 桶的高级配置
- 对象操作
- 任务管理
- 最佳实践
-
常见问题
- 在哪里可以获取AK和SK?
- 如何获取子用户IAM的用户ID?
- 是否可以同时装两个不同站点的OBS Browser+工具?
- OBS Browser+与OBS Browser的不同之处?
- OBS Browser+支持迁移OBS Browser保存的账号信息和任务信息吗?
- 为什么我运行了百万级别的任务后,感觉任务执行较慢?
- 为什么OBS Browser+上显示的桶中对象数量和桶内存储用量与实际的不一致?
- 为什么通过OBS Browser+设置桶ACL后,旧配置中的deliver属性会被覆盖为false?
- 使用账号登录时,界面提示“没有权限登录”
- 使用账号登录时,界面提示“获取用户的Token失败”
- 使用账号登录时,界面提示“账号或者密码错误”
- 定时上传是否采用增量
- 如何永久分享文件或文件夹
- 如何访问指定桶或指定目录
- 目录分享是否支持分享后取消分享
- 是否支持统计文件夹内的文件数目及大小
- 如何解决DNS解析失败
- 是否支持列举特殊字符对象
- 恢复对象任务状态一直是恢复中
- 卸载OBS Browser+
- obsutil
- obsfs(已下线)
- 最佳实践
-
API参考
- 使用前必读
- API概览
- 如何调用API
- 快速入门
-
API
- 桶的基础操作
-
桶的高级配置
- 设置桶策略
- 获取桶策略
- 删除桶策略
- 设置桶ACL
- 获取桶ACL
- 设置桶日志管理配置
- 获取桶日志管理配置
- 设置桶的生命周期配置
- 获取桶的生命周期配置
- 删除桶的生命周期配置
- 设置桶的多版本状态
- 获取桶的多版本状态
- 设置桶默认存储类型
- 获取桶默认存储类型
- 设置桶的跨区域复制配置
- 获取桶的跨区域复制配置
- 删除桶的跨区域复制配置
- 设置桶标签
- 获取桶标签
- 删除桶标签
- 设置桶配额
- 获取桶配额
- 获取桶存量信息
- 设置桶清单
- 获取桶清单
- 列举桶清单
- 删除桶清单
- 设置桶的自定义域名
- 获取桶的自定义域名
- 删除桶的自定义域名
- 设置桶的加密配置
- 获取桶的加密配置
- 删除桶的加密配置
- 设置桶归档存储对象直读策略
- 获取桶归档存储对象直读策略
- 删除桶归档存储对象直读策略
- 设置镜像回源规则
- 获取镜像回源规则
- 删除镜像回源规则
- 设置DIS通知策略
- 获取DIS通知策略
- 删除DIS通知策略
- 设置在线解压策略
- 获取在线解压策略
- 删除在线解压策略
- 配置桶级默认WORM策略
- 获取桶级默认WORM策略
- 静态网站托管
- 对象操作
- 多段操作
- 服务端加密
- Data+
- 错误码
- 权限和授权项
- 附录
-
SDK参考
- SDK概述
- SDK功能矩阵
-
Java
- 使用前须知(Java SDK)
- Java SDK接口概览(Java SDK)
- 使用前准备(Java SDK)
- 下载与安装SDK(Java SDK)
- 快速入门(Java SDK)
- 初始化(Java SDK)
- 管理桶(Java SDK)
- 管理并行文件系统(Java SDK)
- 上传对象(Java SDK)
- 下载对象(Java SDK)
- 管理对象(Java SDK)
- 临时授权访问(Java SDK)
- 多版本控制(Java SDK)
- 生命周期管理(Java SDK)
- 跨域资源共享(Java SDK)
- 设置访问日志(Java SDK)
- 静态网站托管(Java SDK)
- 桶标签管理(Java SDK)
- 服务端加密(Java SDK)
- 客户端加密(Java SDK)
- 问题定位(Java SDK)
- 异常处理(Java SDK)
-
常见问题(Java SDK)
- 本文档是否适用于union SDK?
- 如何使对象可以被匿名用户访问?(Java SDK)
- SDK的重试机制是什么?(Java SDK)
- 如何获取桶的静态网站访问地址?(Java SDK)
- 如何获取对象URL?(Java SDK)
- 公网环境下如何提高上传大文件速度?(Java SDK)
- 如何进行分段上传?(Java SDK)
- 如何进行分段下载?(Java SDK)
- 如果桶内已存在同名对象,如何判定覆盖上传成功?(Java SDK)
- 对于加密类型的对象如何使用URL进行下载?(Java SDK)
- 如何生成SSE-C方式的加密密钥(Java SDK)
- 如何获取SecurityToken?(Java SDK)
- SDK是否支持批量上传、下载或复制对象?(Java SDK)
- 如何指定Content-SHA256?(Java SDK)
- 为什么SDK源码中包含acs.amazonaws.com关键字?(Java SDK)
- 如何理解Content-Type(MIME)?(Java SDK)
- 如何获取账号ID和用户ID?
- 如何实现上传对象时限速(Java SDK)
- 如何实现下载对象时限速(Java SDK)
- 如何设置referer头域(Java SDK)
-
Python
- 使用前须知(Python SDK)
- Python SDK接口概览
- 使用前准备(Python SDK)
- 下载与安装SDK(Python SDK)
- 快速入门(Python SDK)
- 初始化(Python SDK)
-
桶相关接口(Python SDK)
- 创建桶(Python SDK)
- 获取桶列表(Python SDK)
- 判断桶是否存在(Python SDK)
- 删除桶(Python SDK)
- 列举桶内对象(Python SDK)
- 列举桶内多版本对象(Python SDK)
- 获取桶元数据(Python SDK)
- 获取桶区域位置(Python SDK)
- 获取桶存量信息(Python SDK)
- 设置桶配额(Python SDK)
- 获取桶配额(Python SDK)
- 设置桶存储类型(Python SDK)
- 获取桶存储类型(Python SDK)
- 设置桶ACL(Python SDK)
- 获取桶ACL(Python SDK)
- 设置桶日志管理配置(Python SDK)
- 获取桶日志管理配置(Python SDK)
- 设置桶策略(Python SDK)
- 获取桶策略(Python SDK)
- 删除桶策略(Python SDK)
- 设置桶的生命周期配置(Python SDK)
- 获取桶的生命周期配置(Python SDK)
- 删除桶的生命周期配置(Python SDK)
- 设置桶的Website配置(Python SDK)
- 获取桶的Website配置(Python SDK)
- 删除桶的Website配置(Python SDK)
- 设置桶的多版本状态(Python SDK)
- 获取桶的多版本状态(Python SDK)
- 设置桶的CORS配置(Python SDK)
- 获取桶的CORS配置(Python SDK)
- 删除桶的CORS配置(Python SDK)
- 设置桶标签(Python SDK)
- 获取桶标签(Python SDK)
- 删除桶标签(Python SDK)
-
对象相关接口(Python SDK)
- 上传对象简介(Python SDK)
- 上传对象-文本上传(Python SDK)
- 上传对象-流式上传(Python SDK)
- 上传对象-文件上传(Python SDK)
- 上传对象-追加上传(Python SDK)
- 上传对象-断点续传上传(Python SDK)
- 上传对象-获取上传进度(Python SDK)
- 上传对象-基于表单上传(Python SDK)
- 下载对象简介(Python SDK)
- 下载对象-二进制下载(Python SDK)
- 下载对象-流式下载(Python SDK)
- 下载对象-文件下载(Python SDK)
- 下载对象-范围下载(Python SDK)
- 下载对象-断点续传下载(Python SDK)
- 下载对象-获取下载进度(Python SDK)
- 上传对象-创建文件夹(Python SDK)
- 复制对象(Python SDK)
- 删除对象(Python SDK)
- 批量删除对象(Python SDK)
- 获取对象元数据(Python SDK)
- 修改对象元数据(Python SDK)
- 设置对象ACL(Python SDK)
- 获取对象ACL(Python SDK)
- 恢复归档或深度归档存储对象(Python SDK)
- 多段相关接口(Python SDK)
- 客户端加密相关接口(Python SDK)
- 服务编排接口(Python SDK)
- 其他接口(Python SDK)
- 异常处理(Python SDK)
- 常见问题(Python SDK)
- C
-
Go
- 使用前须知(Go SDK)
- Go SDK接口概览
- 使用前准备(Go SDK)
- 下载与安装SDK(Go SDK)
- 快速入门(Go SDK)
- 初始化(Go SDK)
-
桶相关接口(Go SDK)
- 桶相关接口说明(Go SDK)
- 创建桶(Go SDK)
- 获取桶列表(Go SDK)
- 判断桶是否存在(Go SDK)
- 删除桶(Go SDK)
- 列举桶内对象(Go SDK)
- 列举桶内多版本对象(Go SDK)
- 获取桶元数据(Go SDK)
- 获取桶区域位置(Go SDK)
- 获取桶存量信息(Go SDK)
- 设置桶配额(Go SDK)
- 获取桶配额(Go SDK)
- 设置桶存储类型(Go SDK)
- 获取桶存储类型(Go SDK)
- 设置桶ACL(Go SDK)
- 获取桶ACL(Go SDK)
- 设置桶日志管理配置(Go SDK)
- 获取桶日志管理配置(Go SDK)
- 设置桶策略(Go SDK)
- 获取桶策略(Go SDK)
- 删除桶策略(Go SDK)
- 设置桶的生命周期配置(Go SDK)
- 获取桶的生命周期配置(Go SDK)
- 删除桶的生命周期配置(Go SDK)
- 设置桶的网站配置(Go SDK)
- 获取桶的网站配置(Go SDK)
- 删除桶的网站配置(Go SDK)
- 设置桶的多版本状态(Go SDK)
- 获取桶的多版本状态(Go SDK)
- 设置桶的CORS配置(Go SDK)
- 获取桶的CORS配置(Go SDK)
- 删除桶的CORS配置(Go SDK)
- 设置桶标签(Go SDK)
- 获取桶标签(Go SDK)
- 删除桶标签(Go SDK)
- 设置桶加密配置(Go SDK)
- 获取桶加密配置(Go SDK)
- 删除桶加密配置(Go SDK)
- 设置桶的自定义域名(Go SDK)
- 获取桶的自定义域名(Go SDK)
- 删除桶的自定义域名(Go SDK)
- 并行文件系统相关接口(Go SDK)
- 对象相关接口(Go SDK)
- 多段相关接口(Go SDK)
- 其他接口(Go SDK)
- 单链接限速(Go SDK)
- 异常处理(Go SDK)
- 常见问题(Go SDK)
- BrowserJS
- .NET
- Android
- iOS
- PHP
-
Node.js
- SDK下载(Node.js SDK)
- 示例程序(Node.js SDK)
- 技术支持渠道(Node.js SDK)
- 快速入门(Node.js SDK)
- 初始化(Node.js SDK)
-
管理桶(Node.js SDK)
- 创建桶(Node.js SDK)
- 列举桶列表(Node.js SDK)
- 判断桶是否存在(Node.js SDK)
- 删除桶(Node.js SDK)
- 获取桶元数据(Node.js SDK)
- 设置桶ACL(Node.js SDK)
- 获取桶ACL(Node.js SDK)
- 设置桶策略(Node.js SDK)
- 获取桶策略(Node.js SDK)
- 删除桶策略(Node.js SDK)
- 获取桶区域位置(Node.js SDK)
- 获取桶存量信息(Node.js SDK)
- 设置桶配额(Node.js SDK)
- 获取桶配额(Node.js SDK)
- 设置桶存储类别(Node.js SDK)
- 获取桶存储类别(Node.js SDK)
- 上传对象(Node.js SDK)
- 下载对象(Node.js SDK)
- 管理对象(Node.js SDK)
- 多段相关接口(Node.js SDK)
- 临时授权访问(Node.js SDK)
- 多版本控制(Node.js SDK)
- 生命周期管理(Node.js SDK)
- 桶的CORS配置(Node.js SDK)
- 设置访问日志(Node.js SDK)
- 静态网站托管(Node.js SDK)
- 标签管理(Node.js SDK)
- 服务端加密(Node.js SDK)
- 异常处理(Node.js SDK)
- 常见问题(Node.js SDK)
-
Harmony(公测)
- 使用前须知(Harmony SDK)
- Harmony SDK接口概览(Harmony SDK)
- 使用前准备(Harmony SDK)
- 下载与安装SDK(Harmony SDK)
- 快速入门(Harmony SDK)
- 初始化(Harmony SDK)
-
桶相关接口(Harmony SDK)
- 创建桶(Harmony SDK)
- 获取桶列表(Harmony SDK)
- 判断桶是否存在(Harmony SDK)
- 删除桶(Harmony SDK)
- 列举桶内对象(Harmony SDK)
- 列举桶内多版本对象(Harmony SDK)
- 获取桶元数据(Harmony SDK)
- 获取桶区域位置(Harmony SDK)
- 获取桶存量信息(Harmony SDK)
- 设置桶配额(Harmony SDK)
- 获取桶配额(Harmony SDK)
- 设置桶存储类型(Harmony SDK)
- 获取桶存储类型(Harmony SDK)
- 设置桶ACL(Harmony SDK)
- 获取桶ACL(Harmony SDK)
- 设置桶日志管理配置(Harmony SDK)
- 获取桶日志管理配置(Harmony SDK)
- 设置桶策略(Harmony SDK)
- 获取桶策略(Harmony SDK)
- 删除桶策略(Harmony SDK)
- 设置桶的生命周期配置(Harmony SDK)
- 获取桶的生命周期配置(Harmony SDK)
- 删除桶的生命周期配置(Harmony SDK)
- 设置桶的Website配置(Harmony SDK)
- 获取桶的Website配置(Harmony SDK)
- 删除桶的Website配置(Harmony SDK)
- 设置桶的多版本状态(Harmony SDK)
- 获取桶的多版本状态(Harmony SDK)
- 设置桶的CORS配置(Harmony SDK)
- 获取桶的CORS配置(Harmony SDK)
- 删除桶的CORS配置(Harmony SDK)
- 设置桶标签(Harmony SDK)
- 获取桶标签(Harmony SDK)
- 删除桶标签(Harmony SDK)
- 设置桶的加密配置(Harmony SDK)
- 获取桶的加密配置(Harmony SDK)
- 删除桶的加密配置(Harmony SDK)
- 设置桶的自定义域名(Harmony SDK)
- 获取桶的自定义域名(Harmony SDK)
- 删除桶的自定义域名(Harmony SDK)
- 并行文件系统相关接口(Harmony SDK)
- 对象相关接口(Harmony SDK)
- 多段相关接口(Harmony SDK)
- 其他接口(Harmony SDK)
- 异常处理(Harmony SDK)
- 常见问题(Harmony SDK)
- 场景代码示例
-
常见问题
-
产品咨询
- 如何获取OBS的终端节点?
- 我可以在OBS中存储多少数据?
- 我如何选择将数据存储在哪个区域?
- OBS支持使用HTTPS协议访问吗?
- OBS中的数据可以让其他用户访问吗?
- 访问OBS链接提示告警信息的原因和解决办法
- 已删除的数据是否可以恢复?
- 访问OBS域名失败,连接不上CA证书
- 为什么OBS存储的数据丢失了?
- OBS是否支持流量监控?
- OBS上传下载速率的影响因素有哪些?
- 对象存储与SAN存储和NAS存储相比较有什么优势?
- OBS的文件夹与文件系统的文件夹是否一样?
- OBS、EVS和SFS有什么区别?
- 如何判断是否内网访问OBS?
- 我的OBS桶性能是否会受其他用户业务的影响?
- OBS总览页数据不一致的原因是什么?
- 境外数据传输回国场景下的丢包和网络稳定性问题
-
计费相关
- 桶内无对象,为什么还会产生存储费用?
- 桶内无对象为什么会产生流量?
- 已购买资源包,为什么仍然扣费?
- 配置CDN回源,并购买回源流量包,计费未走回源流量包
- 账号欠费后已充值,为什么OBS资源仍然不可用?
- 资源包是否必须购买?是否能指定给具体的桶使用?
- 资源包是否支持退订或修改?
- 资源包到期后OBS资源会如何处理?
- 并行文件系统是否支持资源包?
- 请求次数是如何计算的?
- 是否支持购买请求次数?
- OBS存储资源包使用超量后是否会限制对桶的写入
- 当月未用完的资源包用量是否会结转到下个月?
- 哪些资源包会按月更新额度,哪些不会?
- 购买了回源流量包是否还需要购买公网流出流量包?
- 如何购买专属对象存储?
- OBS账单为什么会出现0.01元的计费?
- 查询账单时,为什么会有大量的公网流出流量?
- 权限相关
-
桶和对象相关
- 创建桶失败
- 上传对象失败
- 下载对象失败
- 删除桶失败
- 删除对象失败
- 通过URL访问对象失败
- 如何在浏览器中在线预览OBS中的对象?
- 我可以修改对象名称吗?
- 我可以在线编辑OBS中的对象吗?
- 如何获取对象访问路径?
- 我可以修改桶所在的区域吗?
- 如何修改桶所属的企业项目?
- 我可以在桶间进行文件复制吗?
- 我可以在桶间进行文件移动吗?
- 我可以上传同名对象到同一个文件夹中吗?
- OBS是否支持断点续传功能?
- OBS是否支持批量上传文件?
- OBS是否支持批量下载文件?
- OBS是否支持批量删除对象或清空桶?
- 无法搜索到桶中对象或对象不存在返回403
- 使用IE浏览器访问带有中文字符的对象URL地址报错如何处理?
- 为什么配置了跨域访问OBS(CORS)仍然报错?
- 如何查看桶内的文件夹大小?
- 如何上传超过5GB的大对象?
- 数据安全、迁移和备份
- 多版本控制
- 服务端加密
- 跨区域复制
- 域名管理
- 静态网站托管
- 图片处理
- 并行文件系统
- 监控
- OBS控制台使用相关
- OBS Browser+和obsutil等工具相关
- API和SDK等开发者相关
- Data+
-
产品咨询
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
转换桶和对象的存储类别
操作场景
本章节指导用户如何修改桶和对象的存储类别。
约束与限制
- 桶存储类别仅支持手动修改。对象存储类别支持手动修改和使用生命周期自动转换。
- 转换存储类别时数据冗余策略保持不变。如果桶或对象是多AZ,那么只能转换成支持多AZ的存储类型(标准存储、低频访问存储支持多AZ)。例如,对象A是多AZ标准存储,那么对象A可以转为低频访问存储,但不能转换为归档存储,因为归档存储不支持多AZ。
手动转换桶存储类别
对于桶存储类别,OBS支持任意两个存储类别之间的手动转换。桶存储类别不支持使用生命周期完成自动转换。
- 修改桶的存储类别,不会影响桶中已有对象的存储类别,后续上传的对象默认与桶的存储类别相同。如果想批量修改桶中对象的存储类别,建议通过生命周期规则配置。
例:桶bucket1为标准存储,桶中有一个标准存储的对象object1。当桶bucket1转换为低频访问存储类别,object1依然为标准存储类别,新上传的object2则为低频访问存储类别。
- 桶的存储类别由归档存储或深度归档存储转换为标准存储或低频访问存储,不会自动恢复桶中存储类别为归档存储或深度归档存储的对象。
OBS支持使用控制台、API、OBS SDK和obsutil共4种方式修改桶存储类别。
使用OBS控制台
- 在OBS管理控制台左侧导航栏选择“桶列表”。
- 在桶列表中,选择待修改存储类别的桶,并单击右侧操作栏的“修改存储类别”。
- 选择存储类别,单击“确定”。
图1 手动修改桶存储类别
使用API
使用命令行工具obsutil
命名结构
- Windows操作系统
obsutil stat obs://bucket [-acl] [-bf=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
- macOS/Linux操作系统
./obsutil stat obs://bucket [-acl] [-bf=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
运行示例
- 以Windows操作系统为例,运行obsutil chattri obs://bucket-test -acl=private,修改桶的访问策略为私有读写。
obsutil chattri obs://bucket-test -acl=private Start at 2024-09-29 07:58:46.0506904 +0000 UTC Set the acl of bucket [bucket-test] to [private] successfully, request id [04050000016836C5DA6FB21F14A2A0C0]
参数说明
参数 |
约束 |
描述 |
---|---|---|
bucket |
必选 |
桶名。 |
acl |
可选 |
同时查询桶的访问策略。 |
bf |
附加参数,可选 |
桶的存储用量字节数的显示格式。支持的值:
如果未设置该参数,则桶的存储用量字节数的显示格式由配置文件中的humanReadableFormat参数决定。 |
config |
附加参数,可选 |
运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。 |
e |
附加参数,可选 |
指定终端节点。 |
i |
附加参数,可选 |
指定用户的AK。 |
k |
附加参数,可选 |
指定用户的SK。 |
t |
附加参数,可选 |
指定用户的securitytoken。 |
手动转换对象存储类别
对于对象存储类别,OBS支持任意两个存储类别之间的手动转换,但转换归档存储、深度归档存储对象的存储类别时,需要先手动恢复,然后再转换。除手动转换外,OBS还支持通过生命周期自动转换对象存储类别。
- 如果对象是低频、归档或深度归档存储对象,那么转换过程中可能会涉及不满最低存储时间而产生的存储费用。
- 如果对象是低频存储对象,虽然不需要手动进行恢复操作,但仍会涉及数据恢复相关的请求费用和数据恢复费用。
- 如果对象是归档存储或深度归档存储对象,会涉及数据恢复相关的请求费用、数据恢复费用和临时副本的存储费用。
OBS支持使用控制台、API、OBS SDK、OBS Browser+和obsutil共5种方式修改对象的存储类别。
使用OBS控制台
- 在OBS管理控制台左侧导航栏选择“桶列表”。
- 在桶列表单击待操作的桶,进入“对象”页面。
- 如果需要修改的对象存储类别为归档存储或深度归档存储,请先执行恢复操作,详细操作步骤参见恢复归档和深度归档存储对象。
- 修改对象存储类别支持单个修改和批量修改。
- 选择存储类别,单击“确定”。
图4 选择对象存储类别
使用API
OBS有2个API接口支持手动转换对象存储类别的方式:
使用图形化工具OBS Browser+
- 登录OBS Browser+。
- 选中待修改对象所在的桶,进入对象页面。
- 如果需要修改的对象存储类别为归档或深度归档存储,请右键单击选中待修改的对象,单击“恢复对象”,恢复完成后继续执行4。
- 右键单击选中待修改的对象,单击“修改存储类别”。
- 选择目标存储类别,然后单击“确认”。
使用命令行工具obsutil
obsutil支持通过修对象属性的方式修改对象存储类别。
- Windows操作系统
- 设置单个对象属性
obsutil chattri obs://bucket/key [-meta=aaa:bbb#ccc:ddd] [-sc=xxx] [-acl=xxx] [-aclXml=xxx] [-versionId=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
- 批量设置对象属性
obsutil chattri obs://bucket[/key] -r [-f] [-v] [-meta=aaa:bbb#ccc:ddd] [-sc=xxx] [-acl=xxx] [-aclXml=xxx] [-o=xxx] [-j=1] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
- 设置单个对象属性
- macOS/Linux操作系统
- 设置单个对象属性
./obsutil chattri obs://bucket/key [-meta=aaa:bbb#ccc:ddd] [-sc=xxx] [-acl=xxx] [-aclXml=xxx] [-versionId=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
- 批量设置对象属性
./obsutil chattri obs://bucket[/key] -r [-f] [-v] [-meta=aaa:bbb#ccc:ddd] [-sc=xxx] [-acl=xxx] [-aclXml=xxx] [-o=xxx] [-j=1] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
- 设置单个对象属性
运行示例
- 以Windows操作系统为例,运行obsutil chattri obs://bucket-test/key -acl=public-read,设置对象的访问策略为公共读。
obsutil chattri obs://bucket-test/key -acl=public-read Start at 2024-09-30 08:17:15.5572914 +0000 UTC Set the acl of object [key] in the bucket [bucket-test] to [public-read] successfully, request id [04050000016836DDFA73B2B5320E2651]
- 以Windows操作系统为例,运行obsutil chattri obs://bucket-test -r -f -acl=public-read,批量设置桶内所有对象的访问策略为公共读。
obsutil chattri obs://bucket-test -r -f -acl=public-read Start at 2024-09-30 08:18:03.105373 +0000 UTC [------------------------------------------------] 100.00% tps:155.15 5/5 233ms Succeed count: 5 Failed count: 0 Metrics [max cost:177 ms, min cost:53 ms, average cost:102.40 ms, average tps:20.41] Task id: 9d7f73ff-f747-4fdd-9b2a-815ba2dc3b07
参数说明
参数 |
约束 |
描述 |
---|---|---|
bucket |
必选 |
桶名。 |
key |
设置单个对象属性时必选 批量设置对象属性时可选 |
待设置属性的对象名,或批量设置对象属性时的对象名前缀。 批量设置对象属性时,如果该值为空,则表示设置桶内所有对象的属性。 |
meta |
附加参数,可选 |
复制对象时可指定的目标对象的标准和自定义元数据。格式为:key1:value1#key2:value2#key3:value3。
|
direct |
附加参数,可选 |
元数据操作指示符。 取值为REPLACE_NEW或REPLACE。 REPLACE_NEW表示:对于已经存在值的元数据进行替换,不存在值的元数据进行赋值,未指定的元数据保持不变。 REPLACE表示:使用当前请求中携带的头域完整替换,未指定的元数据会被删除。 该参数需要与meta搭配使用才会生效。 |
sc |
附加参数,可选 |
对象的存储类型。支持的值:
存储类型为cold的对象,必须首先恢复该对象再设置其存储类型,否则无法设置成功。 |
acl |
附加参数,可选 |
对象的预定义访问策略。支持的值:
以上四个值分别对应:私有读写、公共读、公共读写、桶拥有者完全控制,四种预定义访问策略。 |
aclXml |
附加参数,可选 |
桶的访问策略(xml格式表示)。 <AccessControlPolicy> <Owner> <ID>ownerid</ID> </Owner> <AccessControlList> <Grant> <Grantee> <ID>userid</ID> </Grantee> <Permission>[WRITE|WRITE_ACP|READ|READ_ACP|FULL_CONTROL]</Permission> </Grant> <Grant> <Grantee> <Canned>Everyone</Canned> </Grantee> <Permission>[WRITE|WRITE_ACP|READ|READ_ACP|FULL_CONTROL]</Permission> </Grant> </AccessControlList> </AccessControlPolicy>
须知:
由于该参数值必定含有<和>,作为命令运行时,必须使用引号转义(macOS/Linux操作系统使用单引号,Windows操作系统使用双引号)。 |
fs |
附加参数,可选 |
是否使用并行文件系统的列举方式,如果桶是并行文件系统,推荐加上该参数。
注意:
|
versionId |
附加参数,设置单个对象属性时可选 |
待设置属性对象的版本号。 |
fr |
附加参数,设置单个对象属性时可选 |
设置单个对象属性时生成结果清单文件。 |
f |
附加参数,批量设置对象属性时可选 |
强制操作,不进行询问提示。 |
r |
附加参数,批量设置对象属性时必选 |
按指定的对象名前缀批量设置对象属性。 |
v |
附加参数,批量设置对象属性时可选 |
按指定的对象名前缀批量设置多版本对象属性。 |
o |
附加参数,可选 |
生成结果清单文件的文件夹,命令执行完成后,会在该文件夹下生成结果清单文件(包含成功结果和失败结果两个文件),默认为运行obsutil命令的用户目录的子文件夹.obsutil_output。
|
j |
附加参数,批量设置对象属性时可选 |
批量设置对象属性的最大并发数,默认为配置文件中的defaultJobs。 工具会保证该值至少为1。 |
config |
附加参数,可选 |
运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。。 |
e |
附加参数,可选 |
指定终端节点。 |
i |
附加参数,可选 |
指定用户的AK。 |
k |
附加参数,可选 |
指定用户的SK。 |
t |
附加参数,可选 |
指定用户的securitytoken。 |
通过生命周期自动转换对象存储类别
OBS支持通过生命周期功能实现存储类别自动转换,以降低存储成本。归档和深度归档存储不支持多AZ,因此不支持使用生命周期将多AZ对象的存储类别转化为归档或深度归档存储。更多生命周期相关内容请参见使用生命周期转换对象存储类别。
注意,桶未开启多版本控制时,生命周期转换的计时起点是对象的上传时间点。桶开启多版本控制时,最新版本的的计时起点是新版本对象的上传时间点,历史版本的计时起点是成为历史版本的时间点。
如图所示,OBS支持通过生命周期实现以下场景的存储类别自动转换:
- 标准存储->低频访问存储、归档存储、深度归档存储
- 低频访问存储->归档存储、深度归档存储
- 归档存储->深度归档存储
OBS支持使用控制台、API、OBS SDK、OBS Browser+共4种方式在创建桶时设置桶的存储类别。
使用OBS控制台
- 在OBS管理控制台左侧导航栏选择“桶列表”。
- 在OBS管理控制台桶列表中,单击待操作的桶,进入“对象”页面。
- 在左侧导航栏单击“数据管理>生命周期规则”,进入“生命周期规则”界面。
- 单击“创建”,系统弹出如图6所示对话框。
- 配置生命周期管理规则。
基本信息:
- “状态”:选中“启用”,启用本条生命周期规则。
- “规则名称”:用于识别不同的生命周期配置,其长度需不超过255字符。
- “前缀”:可选。
- 填写前缀:满足该前缀的对象将受生命周期规则管理,输入的对象前缀不能包括\:*?"<>|特殊字符,不能以/开头,不能两个/相邻。
- 未填写前缀:桶内所有对象都将受生命周期规则管理。
说明:
- 当按前缀配置时,如果指定的前缀名与某条已配置的生命周期规则指定的前缀名存在包含关系,OBS会将两条规则视为同一条,而禁止您配置本条规则。例如,系统中已存在指定前缀名为“abc”的规则,则不允许再配置指定前缀以“abc”字段开头的规则。
- 如果已存在按前缀配置的生命周期规则,则不允许再新增配置到整个桶的规则。
当前版本或历史版本:
说明:
- “当前版本”与“历史版本”是针对“多版本控制”而言的。如果开启了“多版本控制”功能,同名的对象上传到同一路径下时,则会产生不同的版本号。最新版本的对象称之为“当前版本”,历史时间上传的对象称之为“历史版本”。当前版本和历史版本的详细介绍请参见多版本控制。
- “当前版本”与“历史版本”至少配置一个,也可以两个版本同时配置。
- 转换为低频访问存储天数:指定在对象最后一次更新后多少天,受规则影响的对象将转换为低频访问存储。至少设置为30天。
- 转换为归档存储天数:指定在对象最后一次更新后多少天,受规则影响的对象将转换为归档存储。如果同时设置转换为低频访问存储和转换为归档存储,则转换为归档存储的时间要比转换为低频访问存储的时间至少长30天。如果单独设置转换为归档存储,则没有时间限制。
- 转换为深度归档存储天数:指定在对象最后一次更新后多少天,受规则影响的对象将转换为深度归档存储。如果同时设置转换为低频访问存储和转换为深度归档存储,则转换为深度归档存储的时间要比转换为低频访问存储的时间至少长30天。如果同时设置转换为归档存储和转换为深度归档存储,则转换为深度归档存储的时间要比转换为归档存储的时间至少长90天。如果单独设置转换为深度归档存储,则没有时间限制。
- 对象过期删除天数:指定在对象最后一次更新后多少天,受规则影响的对象将过期并自动被OBS删除。过期时间必须大于前两个转换时间的最大值,且必须为整数。
- 碎片过期删除天数:指定桶内碎片在产生后多少天自动删除。
- 清理无历史版本的删除标记:此操作将清理无历史版本的删除标记,无历史版本的删除标记是指对象的所有历史版本被删除后,对象仅剩余的1个删除标记。清理该标记有利于提高List性能。
说明:
- 当配置当前版本的对象过期删除时,包含删除“删除标记”。在该对象的当前版本和历史版本全部删除时,会自动删除所有“删除标记”。
- 当同时配置当前版本和历史版本的对象过期删除时,包含删除所有“删除标记”。
- 当配置清理无历史版本的删除标记生效后,将删除“过期删除标记”。
例如,您于2015年1月7日在OBS中存储了以下几个文件:- log/test1.log
- log/test2.log
- doc/example.doc
- doc/good.txt
您于2015年1月10日在OBS中存储了以下几个文件:- log/clientlog.log
- log/serverlog.log
- doc/work.doc
- doc/travel.txt
如果您在2015年1月10日设置前缀为“log”的对象,过期删除的时间设置为一天,可能出现如下情况:
- 1月7日上传的两个对象“log/test1.log”和“log/test2.log”,会在最近一次系统自动扫描后被删除,可能在1月10日当天,也可能在1月11日,这取决于系统的下一次扫描在何时进行。
- 1月10日上传的两个对象“log/clientlog.log”和“log/serverlog.log”,每下一次系统扫描均会判断距上一次对象更新是否已满一天。如果已满一天,则在本次扫描时删除;如果未满一天,则会等到下次扫描再判断,直到满一天时删除,一般可能在1月11日或1月12日删除。
如果您在某天设置前缀为“log”的对象,转换为低频访问存储的时间设置为30天,转换为归档存储的时间设置为60天,过期删除的时间设置为100天,OBS将会在“log/clientlog.log”、“log/serverlog.log”、“log/test1.log”和“log/test2.log”这四个对象上传满30天后转换为低频访问存储,满60天后转换为归档存储,满100天后自动删除。
说明:
对象上传后,系统会将下一个UTC零点作为对象存储的起始时间开始计算生命周期。生命周期规则执行最长耗时24小时。因此,存储类别的转换以及过期被删除可能会存在延时,且一般不会超过48小时。配置生命周期规则后,如果期间修改了生命周期配置,会重新计算生效时间。
- 单击“确定”,完成生命周期规则配置。
使用API
使用图形化工具OBS Browser+
- 登录OBS Browser+。
- 选中待配置的桶,单击“更多 > 生命周期规则”,如图7所示。
- 在“生命周期规则”窗口中单击“创建”,如图8所示。
- 配置生命周期规则。
- 状态:勾选“启用”,启用本条生命周期规则。
- 规则名称:用于识别不同的生命周期配置,其长度需不超过255字符。
- 策略:可根据对象名前缀进行匹配,满足该前缀的对象将受生命周期规则管理。也可将生命周期规则配置到整个桶,则桶内所有对象都将受生命周期规则管理。
说明:
- 当按前缀配置时,如果指定的前缀名与某条已配置的生命周期规则指定的前缀名存在包含关系,OBS会将两条规则视为同一条,而禁止您配置本条规则。例如,系统中已存在指定前缀名为“abc”的规则,则不允许再配置指定前缀包含“abc”字段的规则。
- 如果已存在按前缀配置的生命周期规则,则不允许再新增配置到整个桶的规则。
- 如果已存在配置到整个桶的生命周期规则,则不允许再新增按前缀配置的规则,此时界面的“创建”按钮会变成灰色,表示不可操作。
- 您可以指定在对象最后一次更新后多少天,受规则影响的对象将转换为低频访问存储、归档存储或者过期并自动被OBS删除。
- 转换为低频访问存储:即您可以指定在对象最后一次更新后多少天,受规则影响的对象将转换为低频访问存储。
- 转换为归档存储:即您可以指定在对象最后一次更新后多少天,受规则影响的对象将转换为归档存储。
- 过期删除:可指定对象多少天后过期被自动删除,也可指定在具体某一天之后删除匹配规则的对象。
例如,您于2022年1月7日在OBS中存储了以下几个文件:
- log/test1.log
- log/test2.log
- doc/example.doc
- doc/good.txt
您又于2022年1月10日在OBS中存储了以下几个文件:
- log/clientlog.log
- log/serverlog.log
- doc/work.doc
- doc/travel.txt
在2022年1月10日设置前缀为“log/”的对象,过期时间设置为一天,OBS将会在2022年1月12日自动删除“log/clientlog.log”、“log/serverlog.log”、“log/test1.log”和“log/test2.log”这四个对象。
在今天设置前缀为“log”的对象,转换为低频访问存储的时间设置为30天,转换为归档存储的时间设置为60天,过期删除的时间设置为100天,OBS将会第31天将“log/clientlog.log”、“log/serverlog.log”、“log/test1.log”和“log/test2.log”这四个对象转换为低频访问存储,第61天后转换为归档存储,第101天后自动删除这些对象。
- 在“生命周期管理”对话框中单击“确认”,保存当前的生命周期规则。
转换存储类别相关注意事项
- 最小计量空间
对于小于64 KB的对象,会按照64 KB计算空间大小。
- 最低存储时间
最低存储时间是指对象的计费时间下限。对象存储时间小于最低存储时间时,将按照最低存储时间计费。例如,一个低频访问存储对象在OBS中存储了20天后转换为归档存储,会按照30天计费。
对比项目
标准存储
低频访问存储
归档存储
深度归档存储(受限公测)
最低存储时间
无
30天
90天
180天
- 对象恢复时间
归档存储、深度归档存储类型的对象恢复需要一定的恢复时间,如果业务场景需要实时读对象,那么不建议将对象转换成归档存储、深度归档存储类别。
表1 对象恢复时间 恢复方式
归档存储恢复耗时
深度归档存储恢复耗时
标准
3~5 h
5~12 h
加急
1~5 min
3~5 h
- 数据恢复相关费用
表2 数据恢复费用说明 操作名称
产生费用类别
费用说明
低频访问存储对象恢复
请求费用
按恢复成功的对象数计算请求次数,产生请求费用。
恢复成功N个对象,记录N次请求。
流量费用
数据恢复的流量费用。
归档存储或深度归档对象恢复
请求费用
按恢复成功的对象数计算请求次数,产生请求费用。
恢复成功N个对象,记录N次请求。
流量费用
数据恢复的流量费用。
临时文件存储费用
数据恢复后,会产生一个标准存储类型的对象副本,即对象同时存在标准存储类型的对象副本和原有的归档存储或深度归档存储对象。在恢复的有效期内,会同时收取这份数据在标准存储和归档存储或深度归档存储中的存储费用。恢复有效期到期后标准存储类型的对象副本会自动删除。