-
1 概述1.1 背景介绍当前众多客户需要基于云存储实现低成本的数据库备份和恢复。而Oracle中的备份模块实现了和云存储的对接,可以很好的解决这个问题;华为云的对象存储可以作为客户数据库备份的存储池,以低成本,高可靠方式实现数据存储。本文讲述了基于oracle的osb模块将oracle数据库备份到华为云存储OBS桶中,以及从华为云OBS桶恢复数据到oracle。1.2 实验测试环境本文将以Windows 和Linux下 oracle11g 数据库为例进行备份和恢复的演示测试条件准备如下:OBS:华为公有云,华南-广州 Region ECS1:华为公有云,华南-广州 Region,4vCPUs | 8GB | s3.xlarge.2 CentOS 6.9 64bit,Oracle版本:11.2.0.1.0ECS2:华为公有云,华南-广州 Region,4vCPUs | 8GB | s3.xlarge.2 CentOS 6.9 64bit,Oracle版本:11.2.0.4.0WIN1:华为公有云,华南-广州 Region,4vCPUs | 8GB | s3.xlarge.2 Windows Server 2008 R2 64bit,Oracle版本:11.2.0.1.02 当前设备上备份和恢复数据库(Linux)说明:本例演示采用了Rracle-Raman默认无并发的设置,如果需要增加数据库备份和恢复的性能,需要设置并发数,具体参考5.3章节。另外,本例采用指定桶的方式,即将备份数据上传到指定的桶中,备份也可采用不指定桶的方式,具体请参考5.4章节。2.1 创建表和新建数据说明:在正常情况下,客户使用时可以略过本节,本节创建表和数据只为举例说明使用。前提:Oracle数据库安装完成。 创建表和新建数据过程: 1. 切换到oracle用户su - oracle 2. 进入数据库控制台,如果数据库还没有启动则需要执行 startup 命令启动数据库sqlplus / as sysdbashow parameter checkpoint 3. 创建表和新建数据,效果如下,其中test为新建的表select * from test 2.2 oracle安装osb模块1. 获取osb模块此插件包可以从oracle官网获取最新版本(参考链接:https://docs.oracle.com/en/database/oracle/oracle-database/12.2/rcmrf/oracle-secure-backup-osb-cloud-module.html#GUID-964AADD2-3405-4476-8698-E9F2133CB5B7),也可从本文档最后的附录中链接获取2018年底的版本。图中把插件osbws_installer.zip的压缩包放到$ORACLE_HOME/lib目录下并解压使用命令unzip osbws_installer.zip解压完成后如下图根据客户自己OBS服务的AK、SK、location和endpoint参数配置,执行OBS插件的安装命令说明:AK、SK获取参考链接:https://support.huaweicloud.com/utiltg-obs/obs_11_0004.html;location、endpoint的获取参考链接:https://developer.huaweicloud.com/endpoint)java -jar osbws_install.jar -AWSID 客户AK -AWSKey 客户SK -walletDir $ORACLE_HOME/osbws_wallet -libDir $ORACLE_HOME/lib -location OBS服务的地域 -awsEndPoint OBS服务的endpoint检查安装结果后进入RMAN进行进行环境配置cat $ORACLE_HOME/dbs/osboracle.ora本例采用指定桶备份上传的方式,下图中指定桶obs-oracle-zoudanhong,桶location为cn-south-1。(即使用者需要保证在OBS平台下已经指定名称的桶,且桶区域与上一步OSB配置参数location一致,如果没有这样的桶,可在OBS平台新建一个桶)2.3 RMAN进行数据库备份到OBS桶以root用户名密码登录数据库所在设备ECS1后连接RMAN(连接命令rman target /),执行如下命令将数据库备份到OBS桶,其中标红的部分与数据库名有关,根据实际值进行修改。run {allocate channel ch1 typesbt parms='SBT_LIBRARY=/u01/app/oracle/product/11.2.0/dbhome_1/lib/libosbws.so,SBT_PARMS=(OSB_WS_PFILE=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/osbwsorcl.ora)';backup channel=ch1 database format='ora_%d_%I_%T_%s_%t_%c_%p.dbf' plus archivelog;backup channel=ch1 current controlfile format='%d_%I_%T_%s_%t_%c_%p.conf';backup channel=ch1 spfile format='ora_%d_%I_%T_%s_%t_%c_%p.spf' ;release channel ch1;} 执行完成后,登陆OBS控制台,将会看指定桶obs-oracle-zoudanhong中已经生成了备份数据。2.4 修改数据库数据说明:本步骤是为了进行数据恢复而做的准备,实际环境运行不需要此步骤进入数据库查看归档信息:archive log list;向原数据库中增加了一条数据b并提交数据insert into test values('b');commit;删除归档数据(由于本机有最新的临时数据,为防止备份后的数据恢复后本地自动添加上最新临时数据,需要手工删除归档;异机恢复时不需要此步骤操作)2.5 RMAN进行数据库从OBS桶中读取数据进行恢复操作执行命令关闭数据库shutdown immediate;执行命令使数据库至nomount状态startup nomount;然后执行如下命令从华为OBS恢复controlfile文件,其中controlfile名称,通过rman命令list backup列举出所有的备份文件(参考4.5章节样例),参考2.3章节中备份命令中的备份文件的命名规则设置,根据自己需要选择需要恢复的文件,记下其Handle名称run {allocate channel ch1 typesbt parms='SBT_LIBRARY=/u01/app/oracle/product/11.2.0/dbhome_1/lib/libosbws.so,SBT_PARMS=(OSB_WS_PFILE=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/osbwsorcl.ora)';restore controlfile from 'ORACLE_1880733115_20190507_5_1007656283_1_1.conf';release channel ch1;}切换数据库至mount状态,然后从OBS读取并恢复数据文件。特别注意的是,在执行restore和recover命令后,一定要加入 until sequence xxxx或者until SCN xxxx这个条件,其中 xxxx 为图中执行恢复数据后标红的实际值alter database mount;run {allocate channel ch1 typesbt parms='SBT_LIBRARY=/u01/app/oracle/product/11.2.0/dbhome_1/lib/libosbws.so,SBT_PARMS=(OSB_WS_PFILE=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/osbwsorcl.ora)';restore database from tag='TAG20190507T163102';recover database from tag='TAG20190507T163102';release channel ch1;}说明:上图中的tag值相当于每个备份的ID号,通过rman命令list backup列举出所有的备份文件(参考4.5章节样例),根据自己需要选择需要恢复的文件(需要确保与前面恢复的控制文件是一致的),记下其tag值打开数据库,查询2.3中修改后的数据库已经正确恢复到2.1创建时的状态alter database open resetlogs;3 当前设备数据库备份后在另一台设备上恢复(Linux)3.1 创建表和新建数据参考2.1章节。3.2 oracle安装osb模块参考2.2章节。记得要在两台设备上都要安装osb模块。3.3 RMAN进行数据库备份到OBS桶这里使用在2.3章节中备份的文件。3.4 RMAN进行数据库从OBS桶中读取数据进行恢复操作查看2.3章节中ECS1中数据库的dbid,并登录ECS2设备,将dbid设置到设备ECS2中select dbid from v$database;set dbid=XXX;执行命令关闭数据库shutdown immediate;执行命令使数据库至nomount状态startup nomount;然后执行如下命令从华为OBS恢复controlfile文件,其中controlfile名称,通过在ECS1上执行rman命令list backup列举出所有的备份文件(参考4.5章节样例),参考2.3章节中备份命令中的备份文件的命名规则设置,根据自己需要选择需要恢复的文件,记下其Handle名称。其中标红的部分osbwsoracle与数据库名有关,根据ECS2实际值进行修改,注意与ECS1不同。run {allocate channel ch1 typesbt parms='SBT_LIBRARY=/u01/app/oracle/product/11.2.0/dbhome_1/lib/libosbws.so,SBT_PARMS=(OSB_WS_PFILE=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/osbwsoracle.ora)';restore controlfile from 'ORACLE_1880733115_20190507_5_1007656283_1_1.conf';release channel ch1;}切换数据库至mount状态,然后从OBS读取并恢复数据文件。特别注意的是,在执行restore和recover命令后,一定要加入 until sequence xxxx或者until SCN xxxx这个条件,其中 xxxx 为图中执行恢复数据后标红的实际值其中标红的部分osbwsoracle与数据库名有关,根据ECS2实际值进行修改,注意与ECS1不同。alter database mount;run {allocate channel ch1 typesbt parms='SBT_LIBRARY=/u01/app/oracle/product/11.2.0/dbhome_1/lib/libosbws.so,SBT_PARMS=(OSB_WS_PFILE=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/osbwsoracle.ora)';restore database from tag='TAG20190507T163102';recover database from tag='TAG20190507T163102';release channel ch1;}说明:上图中的tag值相当于每个备份的ID号,通过rman命令list backup列举出所有的备份文件(参考4.5章节样例),根据自己需要选择需要恢复的文件(需要确保与前面恢复的控制文件是一致的),记下其tag值打开数据库,查询2.3中被删除的数据库,已经正确恢复alter database open resetlogs;图中出现的UPGRADE错误,是由于两个设备的数据库版本不一致,相当于从ECS1的11.2.0.1.0的oracle版本恢复到ECS2的11.2.0.4.0的oracle版本,需要执行命令alter database open UPGRADE4 当前设备上备份和恢复数据库(Windows)说明:本例演示采用了Rracle-Raman默认无并发的设置,如果需要增加数据库备份和恢复的性能,需要设置并发数,具体参考5.3章节。另外,本例采用指定桶的方式,即将备份数据上传到指定的桶中,备份也可采用不指定桶的方式,具体请参考5.4章节。4.1 创建表和新建数据说明:在正常情况下,客户使用时可以略过本节,本节创建表和数据只为举例说明使用。前提:Oracle数据库安装完成。 创建表和新建数据过程:1. oracle数据库安装完成2. 打开cmd命令行3. 进入数据库控制台,如果数据库还没有启动则需要执行 startup 命令启动数据库sqlplus / as sysdbashow parameter checkpoint4. 创建表和新建数据,效果如下,其中test为新建的表select * from test4.2 oracle安装osb模块1. 设置ORACLE_HOME和ORACLE_SID变量 从注册表中找到这两个变量,记下实际值,并通过set命令设置到cmd中2. 获取osb模块此插件包可以从oracle官网获取最新版本(参考链接:https://docs.oracle.com/en/database/oracle/oracle-database/12.2/rcmrf/oracle-secure-backup-osb-cloud-module.html#GUID-964AADD2-3405-4476-8698-E9F2133CB5B7),也可从本文档最后的附录中获取。图中把插件osbws_installer.zip的压缩包解压将解压后的文件osbws_install.jar复制到$ORACLE_HOME\lib目录下根据客户自己OBS服务的AK、SK、location和endpoint参数配置,进入$ORACLE_HOME\lib目录下执行OBS插件的安装命令说明:AK、SK获取参考链接:https://support.huaweicloud.com/utiltg-obs/obs_11_0004.html;location、endpoint的获取参考链接:https://developer.huaweicloud.com/endpoint)java -jar osbws_install.jar -AWSID 客户AK -AWSKey 客户SK -walletDir %ORACLE_HOME%\osbws_wallet -libDir %ORACLE_HOME%\BIN -location OBS服务的地域 -awsEndPoint OBS服务的endpoint本例采用指定桶备份上传的方式,下图中指定桶obs-win-oracle-zoudanhong,桶location为cn-south-1。(即使用者需要保证在OBS平台下已经指定名称的桶,且桶区域与上一步OSB配置参数location一致,如果没有这样的桶,可在OBS平台新建一个桶)4.3 RMAN进行数据库备份到OBS桶登录ECS1设备连接RMAN(连接命令rman target /),执行如下命令将数据库备份到OBS桶,其中标红的部分与数据库名有关,根据实际值进行修改。run {allocate channel ch1 typesbt parms='SBT_LIBRARY=C:\app\Administrator\product\11.2.0\dbhome_1\BIN\oraosbws.dll,SBT_PARMS=(OSB_WS_PFILE=C:\app\Administrator\product\11.2.0\dbhome_1\database\osbwsor.ora)';backup channel=ch1 database format='ora_%d_%I_%T_%s_%t_%c_%p.dbf' plus archivelog;backup channel=ch1 current controlfile format='%d_%I_%T_%s_%t_%c_%p.conf';backup channel=ch1 spfile format='ora_%d_%I_%T_%s_%t_%c_%p.spf' ;release channel ch1;}执行完成后,登陆OBS控制台,将会看指定桶obs-win-oracle-zoudanhong中已经生成了备份数据。 4.4 修改数据库数据向原数据库中增加了一条数据b并提交数据insert into test values('b');commit;查询下图中的归档数据并删除(由于本机有最新的临时数据,为防止备份后的数据恢复后本地自动添加上最新临时数据,需要手工删除归档;异机恢复时不需要此步骤操作) 4.5 查询备份文件的handle名和TAG值通过rman命令list backup列举出所有的备份文件,参考2.3中备份命令中的备份设置,根据自己需要选择需要备份的文件(需要确保与前面恢复的控制文件是一致的),记下其Handle名称和TAG值。 4.6 RMAN进行数据库从OBS桶中读取数据进行恢复操作执行命令使数据库至nomount状态然后执行如下命令从华为OBS恢复controlfile文件,命令中的标红部分使用实际值,其中controlfile名称参考4.5章节run {allocate channel ch1 typesbt parms='SBT_LIBRARY=C:\app\Administrator\product\11.2.0\dbhome_1\BIN\oraosbws.dll,SBT_PARMS=(OSB_WS_PFILE=C:\app\Administrator\product\11.2.0\dbhome_1\database\osbwsor.ora)';restore controlfile from 'OR_2932857089_20190509_5_1007812302_1_1.conf';release channel ch1;}切换数据库至mount状态,然后从OBS读取并恢复数据文件。命令中的标红部分controlfile使用实际值,参考4.5章节特别注意的是,在执行restore和recover命令后,一定要加入 until sequence xxxx 或者until SCN xxxx这个条件,其中 xxxx 为图中执行恢复数据后标红的实际值alter database mount;run {allocate channel ch1 typesbt parms='SBT_LIBRARY=C:\app\Administrator\product\11.2.0\dbhome_1\BIN\oraosbws.dll,SBT_PARMS=(OSB_WS_PFILE=C:\app\Administrator\product\11.2.0\dbhome_1\database\osbwsor.ora)';restore database from tag='TAG20190509T114912';recover database from tag='TAG20190509T114912';release channel ch1;}打开数据库,查询2.3中修改后的数据库已经正确恢复到2.1创建时的状态alter database open resetlogs;5 注意事项5.1 oracle的自带osb模块在安装时长时间download无反应oracle12以上的版本中自带了osb模块,如果安装时长时间download无反应,可以考虑去官网下载最新osb模块进行安装,或使用代理服务器进行安装。注:通常上午下载速度较快5.2 数据库所在的设备与OBS桶不在一个区域,备份恢复时间长数据库所在的设备与OBS桶不在一个区域,比如数据库安装在华北的虚拟机,而将数据备份到华南的OBS桶,则在备份和恢复时由于网速的关系,耗费时间较长。解决方案:建议数据库和OBS桶在同一个区域,或者是较近的区域。5.3 oracle数据库备份和恢复默认没有并发,如果要提高带宽性能,需要增加并发设置目前实测最高的数据库备份上传带宽性能最高在8Gbit/s,最高的数据库恢复下载带宽性能最高在17Gbit/s,并发数在15并发左右。登录rman,先进行osb对接和并发参数配置,此处以并发数15为例:configure channel device type sbt parms='SBT_LIBRARY=/u01/app/oracle/product/11.2.0/dbhome_1/lib/libosbws.so ENV=(OSB_WS_PFILE=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/osbwsdb.ora)';configure default device type to SBT;configure device type SBT parallelism 15;备份命令如下:backup database format='ora_%d_%I_%T_%s_%t_%c_%p.dbf' plus archivelog;backup current controlfile format='%d_%I_%T_%s_%t_%c_%p.conf';backup spfile format='ora_%d_%I_%T_%s_%t_%c_%p.spf';恢复时命令如下,其中红色部分根据实际情况填写:restore controlfile from 'DB_1771527802_20190513_932_1008137953_1_1.conf';restore database from tag='TAG20190513T035229';recover database from tag='TAG20190513T035229';5.4 oracle数据库备份和恢复优先采用指定OBS桶的方式进行备份和恢复oracle数据库备份和恢复对接OBS桶,可以采用指定已存在的OBS桶进行对接,也可以不指定OBS桶的方式进行对接,如果采用后一种方式,则OSB插件会根据就否存在oracle-data-account为前缀,且桶所在区域与OSB插件配置时的location一致的桶,如果存在就直接使用此OBS桶,如果不存在会根据oracle-data-account前缀和OSB插件配置时的location新创建一个OBS桶。oracle-data-account中的account与OSB插件生成的配置文件中的“CREDENTIAL_ALIAS”有关。注:目前不指定桶的方式可能会出现一些由于OSB插件造成的不可控的问题,建议使用指定桶的方式进行备份和恢复。具体信息还可参考oracle官网对指定桶参数OSB_WS_BUCKET的介绍:https://docs.oracle.com/database/121/RCMRF/web_services.htm#RCMRF90491 6 附录osb模块下载参考链接:https://chongchongbucket005.obs.cn-north-1.myhuaweicloud.com/oracle/osbws_installer.zip
chongchongly
发表于2019-06-17 16:22:50
2019-06-17 16:22:50
最后回复
chongchongly
2019-06-17 16:22:50
8502 0 -
1 操作场景利用obsutil工具,可以在Windows/Linux平台设置定时任务,完成定时同步增量上传指定目录中的文件,或者定时将成功上传的文件移动另一个本地目录等功能。本文以“定时同步增量上传指定目录中的文件” 功能为例,讲述如何在2种平台上进行定时任务配置。2 前提条件a) 已经从OBS官网上下载了指定版本的obsutil工具包,有Windows 64位版本和Linux 64位版本供选择;b) Windows平台:需要确认能运行打开任务计划程序(在Windows中搜索任务计划程序并成功打开),如图2.1所示。Linux平台:需要确认已正常开启crond定时任务计划服务(运行 service crond status 命令可查看是否开启该服务),如图2.2所示。图2.1 Windows平台搜索任务计划程序并打开图2.2 Linux平台确认正常开启了crond定时任务计划服务c) 使用obsutil之前,需要配置obsutil与OBS的对接信息,包括OBS终端节点地址(Endpoint)和访问密钥(AK和SK)。获得OBS的认证后,才能使用obsutil执行OBS桶和对象的相关操作。Windows平台:使用配置命令 obsutil config -i=ak -k=sk -e=endpoint,之后使用命令 obsutil ls –s,如果返回结果中包含“Bucket number is:”表明配置正确。Linux平台:使用配置命令 ./obsutil config -i=ak -k=sk -e=endpoint,之后使用命令 ./obsutil ls –s,如果返回结果中包含“Bucket number is:”表明配置正确。3 配置步骤(Windows运行平台)3.1 创建任务右击“任务计划程序库”,选中“创建任务”。添加名称、描述,安全选项根据实际需要进行选择。3.2 配置“触发器”页签高级设置根据实际需要进行选择,下图中选择无限期每隔1小时执行1次任务。 3.3 配置“操作”页签点击“操作”页签,新建操作,操作类型选择“启动程序”。程序或脚本选择的是obutil工具(C:\Users\Administrator\obsutil_windows_amd64\obsutil.exe),根据obsutil工具存放的实际路径进行选择。添加参数为 sync C:\Users\Administrator\Downloads\ obs://chongchong-test-win/upload/Downloads/,此命令实现将C:\Users\Administrator\Downloads\目录下的数据同步增量上传到chongchong-test-win桶的/upload/Downloads/目录下。3.4 配置“条件”页签根据实际需要进行选择配置,此处中采用默认值。3.5 配置“操作”页签根据实际需要进行选择配置,引处采用默认值。按照上述3.1-3.5的配置,Windows平台会每隔1小时,自动将 C:\Users\Administrator\Downloads\ 目录下的数据同步增量上传到chongchong-test-win桶的 /upload/Downloads/ 目录下。 4 配置步骤(Linux运行平台)a) 执行 crontab –e 命令,打开编辑定时任务的配置文件。b) 进入Insert模式开始编辑配置文件。30 21 * * * cd /root && nohup ./obsutil sync /home/Downloads/ obs://bucket-test/Downloads/ &>obsutil_crond.log &假设obsutil工具位于/root目录下,上述配置的定时任务含义为:每天21:30进入/root目录下,执行增量上传/home/Downloads/文件夹到obs://bucket-test/Downloads/桶内并将命令的输出内容重定向到/root下的obsutil_crond.log中。c) 按Esc退出Insert模式,并输入:wq保存并退出。d) 执行命令:crontab -l,查看当前用户已配置的定时任务,确认配置成功。 注:Ø crontab如何配置,可以参考链接https://www.cnblogs.com/coffy/p/5608095.html。
-
【基于OBS搭建ownCloud私人云盘】1 方案概述1.1 背景说明近来国内各大网盘频繁关停,大家都被迫迁移文件,很多人在寻求其它的解决方法。其中一种方案,就是利用OBS的海量、安全、低成本的数据存储能力,搭建ownCloud私人云盘,实现无限海量空间存储、共享,以及多平台同步和多形式访问。1.2 方案说明ownCloud私人云盘在搭建过程中,OBS桶有如下3种形式挂载在ownCloud中:Ø 方法一:通过goofys工具,将OBS桶挂载在服务器ownCloud数据目录所在的某个文件夹;Ø 方法二:通过obsfs工具,将OBS posix桶挂载在服务器ownCloud数据目录所在的某个文件夹;Ø 方法三:ownCloud云盘搭建好以后,在配置网页中添加外部存储,挂载OBS桶。前两种方式相较于第三种方式,不会暴露挂载的外部存储信息,也可防止其他登录ownCloud平台的人员查看或修改此信息。本文将详细讲解这3种挂载方式。2 效果展示基于OBS搭建ownCloud私人云盘搭建好以后,访问ownCloud的登录页面(http:// IP-ownCloud/owncloud/index.php/login,其中IP-ownCloud为ownCloud所在的服务器IP地址),输入搭建ownCloud时设置的用户名和密码。图2.1 ownCloud的登录页面登录成功以后,进入ownCloud的文件首页,可以对所有文件及文件夹,进行上传、下载、删除、分享等操作。图2.2中,bucket-obsfs文件夹是用方法一挂载的OBS桶、bucket-goofys文件夹是用方法二挂载的OBS语义桶、OBS文件夹是用方法三在网页设置页面挂载的OBS桶,3个桶均可正常进行文件操作。图2.2 ownCloud的文件首页3 搭建前准备在开始搭建ownCloud云盘前需要准备1台linux主机、2个OBS桶、下载goofys和obsfs工具。表3.1 工具准备工具准备实验中用到的数据描述参考信息1台linux主机操作系统:CentOS 7.5 64bit 外网IP:49.4.30.225华为云ECS申请链接:https://www.huaweicloud.com/product/ecs.html 使用帮助文档链接:https://support.huaweicloud.com/ecs/index.html2个OBS桶普通桶:obs-files-zoudanhong posix桶:obsftpzoudanhongOBS桶申请链接:https://www.huaweicloud.com/product/obs.html 使用帮助文档链接:https://support.huaweicloud.com/obs/index.htmlgoofys工具命令:goofys --endpoint 区域终端节点地址 --region 区域 桶名 本地挂载目录下载和安装指导链接:https://bbs.huaweicloud.com/forum/thread-1037-1-1.htmlobsfs工具命令:./obsfs 桶名 本地挂载目录 -o url=区域终端节点地址 -o endpoint=区域 挂载参数下载和安装指导链接:https://bbs.huaweicloud.com/forum/thread-14106-1-1.html4 具体搭建流程4.1 搭建LAMP平台在linux主机中执行如下命令,安装LAMP架构。[root@ecs-s3 ~]# yum install -y httpd php php-mysql mariadb-server mariadb sqlite php-dom php-mbstring php-gd php-pdo图4.1.1 搭建LAMP平台开启LAMP相关服务。[root@ecs-s3 ~]# systemctl start httpd.service[root@ecs-s3 ~]# systemctl start mariadb.service图4.2 开启LAMP相关服务4.2 下载安装ownCloud从官方网站(https://owncloud.org/download/)下载最新的安装包(本示例为10.0.10),下载完毕后解压源码包,并移动到网站根目录下。图4.2.1 ownCloud安装包下载官网[root@ecs-s3 ~]# wget https://download.owncloud.org/community/owncloud-10.0.10.tar.bz2[root@ecs-s3 ~]# tar -xvf owncloud-10.0.10.tar.bz2[root@ecs-s3 ~]# cp -r owncloud /var/www/html/ #移到网站默认路径 网站数据默认存放路径为/var/www/html/owncloud/data/root/files,在这里我们拷贝了一些文件到此目录,并在此目录中新建两个目录作为OBS桶的挂载目录(bucket-goofys、bucket-obsfs)。[root@ecs-s3 files]# lsDocuments owncloud2 ownCloud Manual.pdf owncloud测试1.txt Photos bucket-goofys bucket-obsfs[root@ecs-s3 files]# pwd/var/www/html/owncloud/data/root/files[root@ecs-s3 ~]# chown -R apache.apache /var/www/html/owncloud 注:若解压遇到报错“tar (child): lbzip2: Cannot exec: No such file or directory”,可能是没有安装bz2执行yum -y install bzip2安装即可。4.3 方法一:通过goofys工具挂载OBS桶goofys工具的使用过程,可以概述为:安装golang---->安装goofys依赖包--->安装goofys---->挂载OBS桶。(下载和安装指导链接:https://bbs.huaweicloud.com/forum/thread-1037-1-1.html)4.3.1 安装golang[root@ecs-s3 ~]# yum -y install golang图4.3.1 golang安装安装完golang后,在/etc/profile中配置环境变量(根据实际情况填写)。图4.3.2 golang环境变量配置重新加载 profile 文件。[root@ecs-s3 ~]# source /etc/profile测试安装是否成功,直接执行 go version,若返回了版本信息则安装成功。图4.3.3 验证golang是否安装成功4.3.2 安装goofys依赖包查看系统是否已经安装了fuse,若未安装,执行如下命令。[root@ecs-s3 ~]# yum -y install fuse4.3.3 安装goofys将已下载的编译好的goofys放到$GOBIN目录下,加上执行权限后(chmod +x goofys)验证是否安装成功,执行goofys --version可以显示版本信息证明成功。图4.3.4 验证goofys是否安装成功4.3.4 挂载OBS桶首先配置OBS认证密钥,创建/root/.aws/credentials文件,将OBS帐户所在的AK\SK按如下格式写入文件中。vi root/.aws/credentials //可以使用一个比较不易访问的目录保证安全性[default]aws_access_key_id = AKaws_secret_access_key = SK 执行图4.3.5中的命令,将OBS桶obs-files-zoudanhong,挂载在ownCloud网站数据目录下创建的bucket-goofys目录。其中uid 48和gid 48分别指apahce用户id和apahce用户组id。 之后使用df –h查看是否已经挂载上。图4.3.5 goofys挂载OBS桶4.4 方法二:通过obsfs工具挂载OBS桶将obsfs工具拷贝到指定目录解压,这里以 /home目录为例,按照指导文档进行配置。(下载和安装指导链接:https://bbs.huaweicloud.com/forum/thread-14106-1-1.html)首先准备好密钥文件,将OBS将帐户访问密钥写入全局默认文件“/etc/passwd-s3fs”。echo AK:SK > /etc/passwd-s3fs 执行图4.4.1中命令,将OBS桶obsftpzoudanhong,挂载在ownCloud网站数据目录下创建的bucket-obsfs目录。其中uid 48和gid 48分别指apahce用户id和apahce用户组id。 之后使用df –h查看是否已经挂载上。图4.4.1 obsfs挂载OBS桶 4.5 创建ownCloud的数据库初始化数据库:[root@ecs-s3 ~]# mysql_secure_installation #设置root密码,之后全部选择y图4.5.1 创建ownCloud数据库 创建 owncloud 用户和权限:[root@ecs-s3 ~]# mysql -u root –p #输入密码MariaDB [(none)]> create database owncloud;MariaDB [(none)]> create user 'owncloud'@'localhost' identified by 'somedatabasepassword';MariaDB [(none)]> grant all on owncloud.* to 'owncloud'@'localhost';MariaDB [(none)]> flush privileges;MariaDB [(none)]> quit;图4.5.2 创建 owncloud 用户和权限4.6 【可选】升级 PHP 版本若本次部署的owncloud的php版本低于PHP 5.6.0,访问ownCloud的登录页面时会报错,需要对PHP版本进行升级。图4.6.1 php版本过低ownCloud登录报错4.6.1 添加第三方源检查当前PHP的安装包。[root@ecs-s3 ~]# yum list installed | grep php移除当前PHP的安装包,否则容易起冲突。[root@ecs-s3 ~]# yum remove php*由于默认的YUM源无法升级PHP,所以需要添加第三方的YUM源。[root@ecs-s3 ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm #更新源[root@ecs-s3 ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm 4.6.2 安装新版本 PHP(7.2)[root@ecs-s3 ~]# yum install -y php72w php72w-opcache php72w-xml php72w-mcrypt php72w-gd php72w-devel php72w-mysql php72w-intl php72w-mbstring4.6.3 验证 PHP 版本[root@ecs-s3 ~]# php –v图4.6.2 验证php新版本是否安装成功4.6.4 重启 apache [root@ecs-s3 ~]# systemctl restart httpd.service 此时重新刷新ownCloud的登录界面,界面已经能正常显示。4.7 登录 ownCloud访问ownCloud的登录页面(http:// IP-ownCloud/owncloud/index.php/login,其中IP-ownCloud为ownCloud所在的服务器IP地址),输入搭建ownCloud时设置的用户名和密码。图4.7.1 ownCloud的登录页面登录成功以后,进入ownCloud的文件首页,可以对所有文件及文件夹,进行上传、下载、删除、分享等操作。图2中,bucket-obsfs文件夹是用方法一挂载的OBS桶、bucket-goofys文件夹是用方法二挂载的OBS语义桶、OBS文件夹是方法三在网页设置页面搭载的OBS桶,3个桶均可正常进行文件操作。图4.7.2 ownCloud的文件首页4.8 方法三:通过ownCloud配置页面挂载OBS桶在“管理-存储”中勾选 【Enable external storage】并按照图示填入图4.8.1中红色标注的这几项即可图4.8.1 ownCloud的配置页面挂载OBS桶完成后即可在网盘首页看到OBS对象存储的目录,如图4.7.2所示。
-
1 方案概述1.1 背景说明OBS服务在提供各种对象上传下载等服务时,已经为用户提供了安全、高可靠的数据存储能力,为确保传输和应用过程中可能产生的数据一致性问题,OBS服务也为用户提供了各种方式来校验对象的MD5一致性,本文就几中常用的方式进行介绍。1.2 方案说明OBS服务为用户提供了不同工具/SDK使用场景下基于MD5校验数据一致性能力:其中OBS Browser和obsutil工具,在开启MD5校验功能后,进行对象上传时,只有在OBS服务端上已上传对象的MD5值与本地对象MD5值一致时才可以上传成功,从而保证上传数据的一致性,同时也将MD5值存放在了对象元数据中。在开启MD5校验功能后进行对象下载时,OBS服务端会将存放在对象元数据中的MD5值与下载后的对象MD5值进行比对,只有两者一致才能成功下载对象。如图1所示。图1 OBS Browser和obsutil进行对象上传下载MD5校验流程另一种方法是OBS SDK,它提供接口参数,利用content-MD5头域能力提供上传数据一致性校验。上传对象完成校验后,对象元数据中的etag值等同于MD5值,但当对象为多段对象或加密对象时,对象元数据中的etag值不是MD5值。在这种情况,MD5没有对比值,OBS SDK也无法对下载对象操作进行MD5校验,但用户可在上传对象时将MD5值存入对象自定义元数据中,供下载对象时进行MD5校验,这部分内容在3.3中会详细讲到。2 对象上传的校验操作指导2.1 方式一:OBS Browser步骤一:登录OBS Browser后,单击页面右上角的“系统配置”图标,在“系统配置>基本配置”窗口,勾选“启用MD5校验”并保存设置,如图2所示。图2 OBS Browser配置MD5校验步骤二:选择需要上传的对象,单击“确定”后,在页面右上角单击“任务管理”图标,在“正在运行”任务管理列表页签中查看对象上传状态和MD5校验状态,待对象上传完成,可以在“已完成”任务管理列表页签中查看到MD5校验结果,如图3所示。图3 OBS Browser查看MD5校验结果说明:· 开启MD5校验会影响上传下载性能。· OBS Browser工具如何使用和下载,请参考对象存储服务OBS帮助文档(链接:https://support.huaweicloud.com/obs/index.html)。2.2 方式二:obsutil使用obsutil工具时,可通过附加-vmd5参数来上传对象,此时OBS服务端会帮用户进行MD5校验,只有在OBS服务端上已上传对象的MD5值与本地对象MD5值一致时才可以上传成功,如图4所示。图4 obsutil查看MD5校验结果说明:· 开启MD5校验会影响上传下载性能。· obsutil工具如何使用和下载,请参考对象存储服务OBS帮助文档(链接:https://support.huaweicloud.com/obs/index.html)。2.3 方式三:OBS SDK除了上述两种方法,您还可以基于华为云SDK,通过编写代码调用华为云API来校验对象上传的一致性。如果不匹配则上传失败,返回HTTP 400错误(Error Message: The Content-MD5 you specified did not match what we received.)华为云有10种语言SDK可供选择,下面列举其中2种语言MD5校验。2.3.1 OBS Java SDK您可以通过ObsClient.base64Md5来直接计算Content-MD5头域,并使用ObjectMetadata.setContentMd5来设置对象MD5值。OBS服务端会将该Content-MD5头域与对象数据计算出的经过Base64编码后MD5值进行对比,示例代码如下。 String endPoint = "https://your-endpoint";String ak = "*** Provide your Access Key ***";String sk = "*** Provide your Secret Key ***";// 创建ObsClient实例ObsClient obsClient = new ObsClient(ak, sk, endPoint);// 计算并设置MD5值ObjectMetadata metadata = new ObjectMetadata();File file = new File("E:\\README.txt");FileInputStream fis = new FileInputStream(file);InputStream is = (InputStream)fis;String contentMd5 = obsClient.base64Md5(is);metadata.setContentMd5(contentMd5);// 带MD5校验功能上传文件obsClient.putObject("bucketname", "objectkey", file, metadata); 说明:· 开启MD5校验会影响上传下载性能。· OBS SDK各工具如何使用和下载,请参考对象存储服务OBS帮助文档(链接:https://developer.huaweicloud.com/sdk?OBS)。 2.3.2 OBS Python SDK您可以通过PutObjectHeader.md5来设置对象Content-MD5头域。其中GetFileMd5函数用于计算对象的MD5值(用户可以自定义,仅供参考),示例代码如下。 # 引入模块from obs import ObsClient# 创建ObsClient实例obsClient = ObsClient(access_key_id='*** Provide your Access Key ***',secret_access_key='*** Provide your Secret Key ***',server='https://your-endpoint')from obs import PutObjectHeaderheaders = PutObjectHeader()# 计算MD5def GetFileMd5(filename): if not os.path.isfile(filename): return myhash = hashlib.md5() f = open(filename, 'rb') str = f.read() myhash.update(str) f.close()return myhash.digest()# 带MD5校验上传文件filename = ‘E:\\README.txt’contentMd5 = GetFileMd5(filename)contentMd5B64 = base64.b64encode(contentMd5).decode()headers.md5 = contentMd5B64resp = obsClient.putFile('bucketname', 'objectkey', filename, headers=headers)if resp.status < 300:print('requestId:', resp.requestId)else:print('errorCode:', resp.errorCode)print('errorMessage:', resp.errorMessage) 说明:· 开启MD5校验会影响上传下载性能。· OBS SDK各工具如何使用和下载,请参考对象存储服务OBS帮助文档(链接:https://developer.huaweicloud.com/sdk?OBS)。3 对象下载的校验操作指导3.1 方式一:OBS Browser步骤一:登录OBS Browser后,单击页面右上角的“系统配置”图标,在“系统配置>基本配置”窗口,勾选“启用MD5校验”并保存设置,如图5所示。图5 OBS Browser配置MD5校验步骤二:选择需要下载的文件,单击“确定”后,在页面右上角单击“任务管理”图标,在“正在运行”任务管理列表页签中可以查看对象下载状态和MD5校验状态,待对象下载完成,可以在“已完成”任务管理列表页签中查看到MD5校验结果,如图6所示。图6 OBS Browser查看MD5校验结果说明:· OBS Browser工具如果在上传对象时未开启MD5校验的功能,那在下载对象时即使开启了MD5校验功能其实也没有进行MD5校验。3.2 方式二:obsutil使用obsutil工具时,若通过附加-vmd5参数来上传对象 ,此时OBS服务端会帮用户进行MD5校验,同时还会把此MD5值存放在该对象的元数据中(如图7所示),以便于下载的时候读取该MD5值,与下载对象计算的MD5值进行比较,如图8所示。图7 存放在对象元数据中的MD5值图8 使用obsutil附加-vmd5参数来下载对象说明:· OBS Browser工具如果在上传对象时未开启MD5校验的功能,那在下载对象时即使开启了MD5校验功能其实也没有进行MD5校验。3.3 方式三:OBS SDKOBS服务SDK对上传对象的Content-MD5头域进行一致性校验,但未做下载对象的一致性校验,但可以通过在上传对象时把MD5值存放到对象自定义元数据里,对象下载后,将此自定义元数据里的MD5值与下载到本地的对象进行校验比对。华为云有10种语言SDK可供选择,下面列举其中2种。3.3.1 OBS Java SDK在上传对象时通过ObjectMetadata.addUserMetadata来存放对象Content-MD5头域值。对象下载后,将此自定义元数据里的MD5校验值和下载到本地文件的MD5校验值进行对比,示例代码如下。 String endPoint = "https://your-endpoint";String ak = "*** Provide your Access Key ***";String sk = "*** Provide your Secret Key ***";// 创建ObsClient实例ObsClient obsClient = new ObsClient(ak, sk, endPoint);// 把Content-MD5头域值存放入对象自定义元数据中ObjectMetadata metadata = new ObjectMetadata();File file = new File("E:\\README.txt");FileInputStream fis = new FileInputStream(file);InputStream is = (InputStream)fis;String contentMd5 = obsClient.base64Md5(is);metadata.addUserMetadata("property1", contentMd5);// 上传文件obsClient.putObject("bucketname", "objectkey", file, metadata);// 获取对象的自定义元数据ObjectMetadata metadataDown = obsClient.getObjectMetadata("bucketname", "objectkey");String contentMd5Origin = metadataDown.getUserMetadata("property1");// 对下载后的对象进行MD5值进行比对ObsObject obsObject = obsClient.getObject("chongchongbucket001", "cc.txt");String contentMd5Download = obsClient.base64Md5(obsObject.getObjectContent());if(contentMd5Origin.contentEquals(contentMd5Download))System.out.println("Object MD5 validation passes!\n");elseSystem.out.println("Object MD5 validation failed!\n");3.3.2 OBS Python SDK在上传对象时通过metadata参数来存放对象Content-MD5头域值。对象下载后,将此自定义元数据里的Content-MD5头域值与下载到本地的对象进行校验比对,示例代码如下。 # 引入模块from obs import ObsClient# 创建ObsClient实例obsClient = ObsClient(access_key_id='*** Provide your Access Key ***',secret_access_key='*** Provide your Secret Key ***',server='https://your-endpoint')from obs import PutObjectHeaderheaders = PutObjectHeader()# MD5值计算函数def GetFileMd5(filename): if not os.path.isfile(filename): return myhash = hashlib.md5() f = open(filename, 'rb') str = f.read() myhash.update(str) f.close()return myhash.digest()# 把MD5值存放入对象自定义元数据中filename = ‘E:\\README.txt’contentMd5 = GetFileMd5(filename)contentMd5B64 = base64.b64encode(contentMd5).decode()metadata = {'property1' : 'contentMd5B64'}resp = obsClient.putFile('bucketname', 'objectkey', filename, metadata=metadata)if resp.status < 300:print('requestId:', resp.requestId)else:print('errorCode:', resp.errorCode)print('errorMessage:', resp.errorMessage)# 获取对象自定义元数据中的MD5值resp = obsClient.putFile('bucketname', 'objectkey')contentMd5Origin = dict(resp.header).get('property1')if resp.status < 300:print('requestId:', resp.requestId)else:print('errorCode:', resp.errorCode)print('errorMessage:', resp.errorMessage)# 对下载后的对象进行MD5值进行比对filenameDown = "E:\\README_DOWN.txt"resp = obsClient.putFile('bucketname', 'objectkey', downloadPath=filenameDown)contentMd5Download = base64.b64encode(GetFileMd5(filenameDown)).decode()if (contentMd5Origin == contentMd5Download): print("Object MD5 validation passes!\n")else: print("Object MD5 validation failed!\n")
chongchongly
发表于2019-06-17 16:02:24
2019-06-17 16:02:24
最后回复
W--wangzhiqiang
2020-10-20 17:56:17
6711 1 -
简介:OBS Browser+是一款运行在Windows系统上的对象存储服务管理工具,OBS Browser+的图形化界面可以非常方便地让用户在本地对OBS进行管理,例如:创建桶、上传下载文件、浏览文件等。注意:OBS Browser+尝鲜版当前面向的是华为云国际站用户,国内用户如果使用该版本,可能无法选择某些国内区域创桶。表1-1 OBS Browser+对PC机的规格要求规格项规格要求备注操作系统l Windows 7 Pro SP1 64-bitl Windows 10 Pro 64-bitl Windows Server 2008 R2 Enterprise 64-bitl Windows Server 2016 standard 64-bit-CPUl 最低配置:双核1.6GHz CPUl 标准配置:双核2.4GHz CPU-内存l 最低配置:4GB 内存l 标准配置:8GB 内存l 可用内存:≥512MB-安装盘可用空间≥512MB安装OBS Browser+所需的硬盘空间。数据盘可用空间≥3GB存放OBS Browser+数据库的数据文件所需的硬盘空间(当前版本是存放在系统盘)。工具优势:与同类的旧版工具OBS Browser相比,OBS Browser+性能和稳定性更佳;安装、卸载和升级更方便;且支持拖拽上传、后台运行、数据列可拖动等功能,极大地提升了用户体验;当前OBS Browser+部分功能还未完善(如不支持移动复制),如需使用更多的功能请下载旧版OBS Browser。下载工具:请从这里下载OBS Browser+。注意:部分杀毒软件(如windows defender)更新后,会将本工具误认为是病毒软件,目前团队正在联系windows进行处理,在问题解决前,请选择下载。
-
尊敬的华为云客户:由于证书过期,OBS计划将于6月17日起,陆续更换服务端证书,替换计划详情如下:变更时间影响区域影响服务变更影响2019/06/1700:00-03:00(北京时间)华南-广州对象存储服务OBS由于OBS服务端证书的颁发机构变更,使用自定义证书接口的客户端将会受影响2019/06/1800:00-03:00(北京时间)华东-上海二2019/06/2000:00-03:00(北京时间)华北-北京一 本次证书替换, 受影响的场景:1、自编写代码校验服务器端证书或客户端环境所使用的信任列表未预置新证书;2、OBS SDK使用了自定义证书接口;以上两种场景需要提前导入根证书,SDK需要手动进行规避,确保服务端证书切换不影响业务。排查指导详见:https://bbs.huaweicloud.com/forum/thread-18555-1-1.html给您带来的不便,敬请谅解。感谢您对华为云的支持!
-
背景:服务端证书的颁发机构变更为GlobalSign,会导致未预置新根证书的极少数客户端通过Https访问OBS建链失败 排查方法:场景一:用户自编写代码校验服务器端证书或客户端环境所使用的信任列表未预置GlobalSign根证书在访问OBS的客户端环境上,按实际业务场景下载对象,验证地址:https://dfvtest-huidu.obs.myhwclouds.com/test.txt,下载成功且无证书相关告警,表示无证书兼容性问题场景二:使用了OBS SDK,在SDK中调用了自定义证书接口1)涉及的OBS SDK种类:Go、Node.js、Android、PHP、Python、C2)涉及自定义证书的排查方式(确认是否有使用如下链接中的代码初始化ObsClient客户端):• Go SDK自定义证书接口:https://support.huaweicloud.com/sdk-go-devg-obs/zh-cn_topic_0142815236.html • Node.js SDK自定义证书接口:https://support.huaweicloud.com/sdk-nodejs-devg-obs/zh-cn_topic_0142811563.html • Android SDK自定义证书接口:https://support.huaweicloud.com/sdk-android-devg-obs/zh-cn_topic_0142813503.html• PHP SDK自定义证书接口:https://support.huaweicloud.com/sdk-php-devg-obs/zh-cn_topic_0142811839.html • Python SDK自定义证书接口:https://support.huaweicloud.com/sdk-python-devg-obs/zh-cn_topic_0142811987.html • C SDK自定义证书接口:https://support.huaweicloud.com/sdk-c-devg-obs/zh-cn_topic_0142873616.html 处理方法:针对场景一的处理方法:把客户端证书添加到信任列表Windows系统:解压附件,双击ca.cer证书,点击安装即可Linux系统示例如下:上传ca.cer到Linux操作系统,通过Openssl导入证书:1、先转换格式 .cer 到 .pemopenssl x509 -inform der -in ca.cer -out ca.pem2、追加到信任列表cat ca.pem >> /etc/pki/tls/certs/ca-bundle.crt软件运行环境按各自证书导入的方法执行例如Java环境:进入java的安装目录:/usr/java/jdk1.8.0_131,然后进入:jre/lib/security执行命令:keytool -import -alias obs -file ca.cer -keystore cacerts (一般默认密码为:changeit) 针对场景二的处理方法:在初始化ObsClient客户端时,设置不校验HTTPS证书,示例代码如下:• Go SDK:// 创建ObsClient结构体var obsClient, _ = obs.New( ak, sk, endpoint, // 配置不验证服务端证书 obs.WithSslVerifyAndPemCerts(false, nil),)• Node.js SDK// 创建ObsClient实例var obsClient = new ObsClient({ access_key_id: '*** Provide your Access Key ***', secret_access_key: '*** Provide your Secret Key ***', server : 'https://your-endpoint',// 配置使用HTTPS协议 ssl_verify : false// 配置不验证服务端证书});• Android SDKObsConfiguration config = new ObsConfiguration();// 配置不验证服务端证书config.setValidateCertificate(false);String endPoint = "https://your-endpoint";String ak = "*** Provide your Access Key ***";String sk = "*** Provide your Secret Key ***";// 使用HTTPS协议创建ObsClient实例ObsClient obsClient = new ObsClient(ak, sk, endPoint); • PHP SDK// 创建ObsClient实例$obsClient = new ObsClient([ 'key' => '*** Provide your Access Key ***', 'secret' => '*** Provide your Secret Key ***', 'endpoint' => 'https://your-endpoint', // 配置endpoint, 使用HTTPS协议 'ssl_verify' => false // 配置不验证服务端证书]); • Python SDK# 创建ObsClient实例obsClient = ObsClient( access_key_id='*** Provide your Access Key ***', secret_access_key='*** Provide your Secret Key ***', server='https://your-endpoint',# 配置使用HTTPS协议 ssl_verify= False# 配置不验证服务端证书) 如果以上方法处理失败,欢迎跟帖咨询或联系客服处理!由此给您带来的不变,敬请谅解,感谢您一直对华为云的支持!
-
本文主要对OBS的计费项目以及计费方式通过一副图进行简单介绍:如需了解更多计费情况,请查看OBS计费详情。
-
本文主要对OBS的计费项目以及计费方式通过一副图进行简单介绍:如需了解更多计费情况,请查看OBS计费详情。
-
1. OBS包年包月套餐包,购买时长选择1年,是指所购买的资源包有效期是一年还是指每个月都有这么多的量? 答:OBS包年包月套餐包是按自然月重置的,每个月都有那么多的量,如果购买2TB的下行流量、购买时长为1年,则表示,一年12个月,每个月都有2TB的下行流量,先扣除流量包额度,超出部分按照按需扣费机制结算。 2. OBS包年包月流量包,如果本月的流量包没有使用完,会继续续到下个月吗? 答: 每个月未使用完的流量,都会在下个月的0点清零,不会续到下个月。 3. 低频存储和归档存储可以使用包年包月套餐包吗? 答:包年包月售卖模式只支持标准存储服务。 4. OBS的包年包月类型的计费项都有哪些? 答:OBS资源包目前提供存储包、下行流量包、回源流量包和OBS多AZ存储包四种类型。其他计费项(请求费用、跨区域复制流量等)请使用按需计费的模式进行估算。 5. 包年包月套餐包可以指定生效时间吗? 答:资源包费用为一次性支付,支持立即生效和指定生效时间。 6. OBS按需付费和包年包月套餐包可以混合使用吗? 答:OBS开通时,默认按照按需付费(使用量按小时计费),同时也支持包年包月(资源包)的方式提前购买使用额度和时长。2者可以搭配使用,如果购买了包年包月套餐包,则优先扣除套餐包的资费,超出部分,则按需计费。更多信息,请参考OBS价格说明。
-
OBS(Object Storage Service)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力,包括:创建、修改、删除桶,上传、下载、删除对象等。所有这些功能都离不开OBS的客户端工具,下面将OBS常用的工具进行汇总如下。通过以下几种方式可以进行创建桶,上传对象等操作。 使用工具 描述 管理控制台管理控制台是网页形式的。通过管理控制台,您可以使用直观的界面进行相应的操作。 OBS BrowserOBS Browser是一款运行在Windows系统上的对象存储服务客户端,可以非常方便的让您在个人电脑上进行对象存储的操作。OBS utilobsutil是一款用于访问管理华为云对象存储服务(Object Storage Service,OBS)的命令行工具,您可以使用该工具对OBS进行常用的配置管理操作,如创建桶、上传文件/文件夹、下载文件/文件夹、删除文件/文件夹等。对于熟悉命令行程序的用户,obsutil是执行批量处理、自动化任务的最佳选择。OBSFTPOBSFTP工具利用pyftpdlib库的FTP server能力和对象存储云端存储能力,提供出具有FTP接入的云上存储使用能力。在企业实际业务中,无需单独搭建FTP服务器和存储池,实现业务和运维的轻量化,极大降低了原有的FTP访问方式的技术成本。 SDKOBS SDK是对OBS服务提供的REST API进行的封装,以简化用户的开发工作。用户直接调用OBS SDK提供的接口函数即可实现使用OBS服务业务能力的目的。 APIOBS提供REST形式的访问接口,使用户能够非常容易地从Web应用中访问对象存储服务。用户可以通过本文档提供的简单的REST接口,在任何时间、任何地点、任何互联网设备上进行上传和下载数据。
-
我的25万张图片在本地计算机的同一文件夹内,需要批量上传。只能500张操作一次?这要传到什么时候?传那么多,也没办法分啊...
-
【问题简要】OBS 外呼【问题类别】OBS 外呼取时间段 问题 【IPCC解决方案版本】 CloudIPCC V200R001C60SPC300【期望解决时间】2019-04-25【问题现象描述】场景是: OBS 自动外呼,当客户接通时,自动播放语音,现在需求:如何取到开始外呼时间,附件中的一条数据,当callidnum =1时候,waitbegin waitend是指什么时间,ackbegin 跟ackend 差9 秒,这9秒可以理解为客户的振铃时间吗?最后的通话时间,我理解是当callidnum =-1 时候,callbegin 跟callend 的时间差,这个时间差实际就是IVR 播放语音的时间。【日志或错误截图】【可选】 //如果有日志或错误截图,请作为附件上传
-
2019-04-12 17:28:17 [21317] [RUN] [INFO] [21013] Invoking the CTI API fails. CTIApiName:CccGetDeviceBySkillsWithVDN,VdnID=7,ServiceID=1,@@,ErrorCode:16,ErrInfo:
-
前言具体不多说,一直参与关注华为云、参加华为云的活动很久了。之前当然也玩过MapReduce,不过不是像这次一样能够同时使用流式集群和分析集群(大概对应平时说的实时和离线运算)。要注意的一点是,mrs整体框架是Hadoop,流计算使用的是zookeeper进行管理。现在非常火的Flink被华为云单分到CS(实时流计算)这个产品里面去了,据说Flink非常厉害,啥都能干 = = Spark分析集群体验spark官方demo链接 https://support.huaweicloud.com/bestpractice-mrs/mrs_05_0001.html个人感觉离线集群配置上讲相对简单,不需要有很多顾虑啥的(其实华为云的服务已经非常简化了)对比一下可以发现,阿里云的服务提供和华为云的差别并不大,Flink是不是华为云也可以整合进来?我不是很了解。不过华为云的插件看上去的确是不如阿里云多的。这是华为云购买后的页面,点进去可以进行管理需要注意的是,spark直接通过操作master就可以进行离线运算。具体的操作流程大概是 上传数据到OBS > 建立DIS委托 > 上传jar到OBS > UI操作执行程序,结果会导出到OBS。非常的方便(性能上我不知该如何评判,也没有对比,主要是没钱哈哈哈)。但是华为云离线运算的操作,上传jar之后,完全可以写脚本定期运行(华为云所有操作都可以通过API实现,具体可以看IAM那块,分配权限),小团队和企业可以定期离线分析数据,又不需要搭环境,运行一会成本也不高(这是我们当前的小方案,自己玩hhh)。Kafka + Storm流式集群体验先放官方链接 https://support.huaweicloud.com/bestpractice-mrs/mrs_05_0002.html之所以这么晚写,就是因为Kafka,或者说说有的流计算包括Storm都在第一步卡到我了。Zookeeper是默认安装的,通过点击集群管理界面进入注意,这个集群管理界面进入到一个证书无效而且直接是IP的网页,会提示不安全,是一个登录页面。用户名是admin,密码在购买集群的时候设置了(当时我还说为什么有俩密码)。之后要通过这里的zookeeper去查看mrs结构,各个节点和功能所处服务器之类的。如果只有单节点那自然是上不去也能知道了。点击高级,继续前往所有人的账号用户名都是admin,这个就是这个集群的mrs管理账户,不是华为云账户非常多的可视化监控界面,其实这个部分我感觉就是集群管理,但是华为云的所有管理界面的设计是真的一目了然,非常方便了。思路是这样的,用Kafka去收集数据,传递给Storm进行实时分析(图片是华为云案例给的)同样,写好计算用jar包之后,只需要几个命令行就可以运行起来整个集群,不过流计算更多需要注意的是安全规则的问题,多开不安全,开少了连不通,建议先设计好了再一起写vpc。考虑到实时计算是要接入到现有业务之中的,所以网关的确是一个非常重要的事情。同时,集群的可靠性也比较重要。节点信息这里可以非常方便的调整和升级master规格。但是需要注意的是,升级master节点是要求开启高可用的,毕竟升级过程是会断开单个服务器的服务,相当于单台设备宕机。集群调整是直接以node的添加和删除进行处理的,所以基础的node还是不宜过小。总体来说,华为云的MapReduce功能全面,运维上也很方便,稳定性和性能专业人士自有考量,我们做这个时间也不够。阿里云的MapReduce是和flink这些都集成在一起的,华为云的MapReduce和flink分开,flink单独成一个CS服务。然后我看了一下,这个CS是一个更高级的封装,只需要写SQL就可以(大体上讲)就可以开发很多的业务,对接kafka集群等。感觉华为比阿里从开发上讲,更偏向于提供服务,简化开发人员的代码编写,同样也就增加了开发的效率。如果华为是PaaS,那么阿里可能就介于Iaas和PaaS之间,看阿里的文档希望用户能够在一个稳定的平台有更多的自由度,放出了很多源码的编写方式之类的。多说一点就是,华为云的服务非常多,而且自身整合的非常好,这么短时间内做的这么完善是真的不容易。日志有专门的日志分析系统,流计算Flink也封装好了好多不需要自己去配置,需要Hadoop平台框架去实现的企业自身功能,基本上定制性都很强了,图引擎和广告服务等能够完成大部分数据的分析。接触MRS不深,如果有什么写的不对的地方,麻烦指出,希望能帮得上各位大佬进行选择
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签