oss迁移ceph桶说明

  1. 背景说明:
    A系统的音频文件放置在oss中,需要把里面的音频文件筛选、转码成wav格式、修改文件名,再放置到B系统的ceph的xx桶中

  2. 执行方法:
    第一步:将文件从oss拷贝到服务器硬盘上
    mon容器内执行:
    dest=/etc/ceph/filestore
    #/etc/ceph:/etc/ceph容器映射目录,filestore 不存在的话,要手工创建;
    for i in rados ls -p dsStore;do rados -p dsStore get $i d e s t / dest/ dest/i; done;
    ps:如果硬盘不够大,需要将新拷贝出来的文件,按照日期(30分钟前拷贝出来的数据)剪切到另一个文件夹,再scp到其他服务器,再删除该文件夹释放空间。
    /usr/bin/find /home/kang -type f -newermt ‘2021-09-09 10:40’ ! -newermt ‘2021-09-09 10:48’ | xargs -i mv {} /home/new/

第二步:执行工具,把上一步骤拷贝出来的音频文件筛选、转码成wav格式、修改文件名,放置到一个新目录里(这里假设是/data/yinpin);

第三步:将第二步获取到的音频文件,复制到ceph中
将文件拷贝到新系统rgw容器的服务器映射目录:
/data/lib/yinpin
进入容器,再进入/var/lib/ceph/yinpin目录,可以看到文件已经映射到容器里了:
在这里插入图片描述

在容器中执行:
vi /root/.s3cfg
输入以下内容(ceph连接信息根据实际项目调整):
[default]
access_key = xxxxxx
secret_key = xxxxxxxxxxxxxxxxxxxxxxxxxx
host_base = 172.168.0.121:7480
host_bucket = localhost
use_https = False
然后在/var/lib/ceph/yinpin目录中执行:
for FILENAME in ls *.wav; do { s3cmd put $FILENAME s3://new-bucket-d74433c7; } done
如果文件过多,报argument list too long错误,可以用下面的命令:
for FILENAME in find . -name "*.wav"; do { s3cmd put $FILENAME s3://new-bucket-d74433c7; } done
如下图(我演示的是拷贝到一个新桶,便于下面验证):
在这里插入图片描述

验证:通过S3 Browser查看桶里已经有音频数据了,如下图:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值