使用ossUtils清空bucket内所有数据
- 背景
近日,要对oss某个桶中的数据进行跨账号迁移,首先就要删除A账号的桶在B账号重新建重名的桶,而在oss控制台想直接删除桶,需先清空桶内数据,该桶内数据较多,在oss控制台也未找到快速删除桶内所有数据的功能,所以考虑使用ossUtils进行处理。 - 扩展
- 在oss同一个区内,不允许同名桶的存在;
- 当一个桶删除后,不能立即建同名的桶,而是要等半小时后,oss后台清空后台缓存后才可以。
- oss的通的安全策略中 “公共读写”权限要慎用,如果开了公共读写,任何人都可以对你这个桶进行读写,而oss是按流量收费的,走公网就会产生流量费用。
- 操作
- 下载oss工具ossutil
# 下载ossutil
wget http://gosspublic.alicdn.com/ossutil/1.5.0/ossutil64
# 授权
chmod 755 /usr/local/src/ossutil64/ossutil64
# 软链接到bin目录下直接执行
ln -s /usr/local/src/ossutil64/ossutil64 /usr/local/bin/ossutil64
- 创建删除脚本
touch remove-oss-bucket.sh
vim 编写脚本 # oss 配置 如果服务器跟oss是内网,记得使用内网地址
oss_endpoint="oss-cn-beijing-internal.aliyuncs.com" #真实oss endpoint
oss_bucket="zm-test01" #真实osss桶名
oss_accesskeyid="*****" #请填写真实oss keyId
oss_accesskeysecret="****" #请填写真实oss keysecret
echo "删除桶"${oss_bucket}
/usr/local/bin/ossutil64 rm oss://${oss_bucket} -r -f -e ${oss_endpoint} -i ${oss_accesskeyid} -k ${oss_accesskeysecret}
- 给脚本赋可执行权限
chmod 777 remove-oss-bucket.sh
- 执行脚本
./remove-oss-bucket.sh
- 执行结果