• [技术干货] 基于OBS搭建ownCloud私人云盘
    【基于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所示。
  • [教程] OBS 对象上传下载的一致性校验
    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")   
  • [产品介绍] 华为云OBS服务全新版图形界面工具OBS Browser+尝鲜版发布
    简介: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于2019年6月17日至20日 每日00:00-03:00(北京时间)进行服务端证书变...
    尊敬的华为云客户:由于证书过期,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给您带来的不便,敬请谅解。感谢您对华为云的支持!
  • [教程] OBS服务端证书替换排查及处理方法
    背景:服务端证书的颁发机构变更为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费用组成
    本文主要对OBS的计费项目以及计费方式通过一副图进行简单介绍:如需了解更多计费情况,请查看OBS计费详情。
  • OBS价格咨询FAQ(一)
       1. OBS包年包月套餐包,购买时长选择1年,是指所购买的资源包有效期是一年还是指每个月都有这么多的量?       答:OBS包年包月套餐包是按自然月重置的,每个月都有那么多的量,如果购买2TB的下行流量、购买时长为1年,则表示,一年12个月,每个月都有2TB的下行流量,先扣除流量包额度,超出部分按照按需扣费机制结算。   2. OBS包年包月流量包,如果本月的流量包没有使用完,会继续续到下个月吗?       答: 每个月未使用完的流量,都会在下个月的0点清零,不会续到下个月。   3. 低频存储和归档存储可以使用包年包月套餐包吗?       答:包年包月售卖模式只支持标准存储服务。   4. OBS的包年包月类型的计费项都有哪些?       答:OBS资源包目前提供存储包、下行流量包、回源流量包和OBS多AZ存储包四种类型。其他计费项(请求费用、跨区域复制流量等)请使用按需计费的模式进行估算。   5. 包年包月套餐包可以指定生效时间吗?       答:资源包费用为一次性支付,支持立即生效和指定生效时间。   6. OBS按需付费和包年包月套餐包可以混合使用吗?       答:OBS开通时,默认按照按需付费(使用量按小时计费),同时也支持包年包月(资源包)的方式提前购买使用额度和时长。2者可以搭配使用,如果购买了包年包月套餐包,则优先扣除套餐包的资费,超出部分,则按需计费。更多信息,请参考OBS价格说明。
  • [热门活动] 对象存储服务(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万张图片需要上传到obs,怎么传?
    我的25万张图片在本地计算机的同一文件夹内,需要批量上传。只能500张操作一次?这要传到什么时候?传那么多,也没办法分啊...
  • [分享交流] cloud ipcc 使用OBS 外呼场景时,如何取得外呼开始时间
    【问题简要】OBS 外呼【问题类别】OBS 外呼取时间段 问题      【IPCC解决方案版本】       CloudIPCC V200R001C60SPC300【期望解决时间】2019-04-25【问题现象描述】场景是: OBS 自动外呼,当客户接通时,自动播放语音,现在需求:如何取到开始外呼时间,附件中的一条数据,当callidnum =1时候,waitbegin  waitend是指什么时间,ackbegin 跟ackend 差9 秒,这9秒可以理解为客户的振铃时间吗?最后的通话时间,我理解是当callidnum =-1 时候,callbegin 跟callend 的时间差,这个时间差实际就是IVR 播放语音的时间。【日志或错误截图】【可选】         //如果有日志或错误截图,请作为附件上传
  • [已解决问题归档] [入驻式]关于obs自动外呼调用存储过程日志报错
    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体验 by Mojerro
    前言具体不多说,一直参与关注华为云、参加华为云的活动很久了。之前当然也玩过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不深,如果有什么写的不对的地方,麻烦指出,希望能帮得上各位大佬进行选择
  • [公告] 华为云云迁移中心CMC于2019年5月1日00:00(北京时间)退市通知
    尊敬的华为云客户:华为云计划于2019/05/01 00:00(北京时间)对云迁移中心CMC正式退市。云迁移中心CMC中的对象存储深度评估功能已移至对象存储迁移服务OMS中,您可以在OMS中继续使用该功能。如您有任何问题,可随时通过工单或者服务热线(+86-4000-955-988 )与我们联系。感谢您对华为云的支持!https://www.huaweicloud.com/notice/2018/20190329154543385.html
  • [技术干货] 对obs访问日志做可视化统计分析(无需编码)
    对obs访问日志做可视化统计分析(无需编码)
总条数:1487 到第
上滑加载中