
”运维笔谈”公众号,对话回复 “阿里云k8s” 可以获取《阿里云Kubernetes项目实战手册》PDF。
在阿里云OSS上设置文件生命周期的时候,不小心把部分文件转为归档类型了,应用读取的时候需要解冻下文件,否则没法读取,但是每次解冻的文件不是直接转为标准存储,而是会有一个解冻期,这很不方便。
有个费钱的解决方法就是开启归档直读功能,这种比较适合偶然的读取归档文件的情况,我这个是失误导致的,所以最好的方法是把归档的文件修改为标准的。
后来提交工单,阿里云的ossutil工具可以设置元数据的方式,变更 X-Oss-Storage-Class:Standard
这是使用参考文档:https://help.aliyun.com/zh/oss/developer-reference/set-meta?spm=a2c4g.11186623.0.0.7f9c3000C2GChf
1.安装阿里云OSS工具ossutil
Linux系统快速安装ossutil:
sudo -v ; \curl https://gosspublic.alicdn.com/ossutil/install.sh | \sudo bash
Windows下载zip包解压即可:
https://gosspublic.alicdn.com/ossutil/1.7.19/ossutil-v1.7.19-windows-amd64.zip
2.配置ossutil
以Linux为例,我们可以使用以下命令来打开一个交互式的方法生成配置
./ossutil64 config
默认的文件保存路径为 ~/.ossutilconfig文件里,根据提示设置语音环境是中文还是英文,默认是和我们的操作系统设置一致。
然后根据提示分别设置Endpoint、AccessKey ID、AccessKey Secret和STSToken参数(这个可以为空)。

配置完成之后,我们使用如下命令测试下配置是否生效
ossutil -c ~/.myossutilconfig ls oss://example-bucket
3.使用ossutil更改文件存储类型示例
在执行之后,我们需要先确认下我们的AK,AS需要有oss:GetObject、oss:PutObject、oss:GetObjectVersion和oss:GetObjectAcl权限;要批量为文件设置元数据,需要有oss:GetObject、oss:PutObject、oss:GetObjectVersion和oss:ListObjects权限。
a.把单个文件设置为标准存储Standard 。
ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Storage-Class:Standard
b.结合-r及-u选项,把examplebucket中目录desfolder下所有文件类型为.jpg的Object的存储类型修改为低频访问类型IA。
./ossutil64 set-meta oss://examplebucket/desfolder/ X-Oss-Storage-Class:IA --include "*.jpg" -u -r
c.结合-r及-u选项,将examplebucket中目录desfolder下文件名包含abc且文件类型不为.jpg和.txt的Object的存储类型修改为归档存储Archive。
ossutil set-meta oss://examplebucket/desfolder/ X-Oss-Storage-Class:Archive --include "*abc*" --exclude "*.jpg" --exclude "*.txt" -u -r
正确的返回结果如下:
Succeed: Total 21 objects. Setted meta on 21 objects(skip 0 objects).








