• [媒体转码] 华为云媒体转码服务之管理媒体文件
    概念:媒体转码服务使用对象存储服务管理媒体文件,使用转码服务前,需要先进行对象存储服务的授权并上传媒体文件。操作步骤登录对象存储服务控制台,单击“创建桶”。创建媒体转码服务需要的桶,用于存储媒体转码服务的输入、输出文件。创建桶过程中,如果输入文件和输出文件分别以不同的桶进行存储时,结合媒体转码服务的业务特性,推荐存储输入文件的桶设置为“低频访问存储”,存储输出文件的桶设置为“标准存储”。说明:       当前媒体转码服务部署在华北区,在对象存储服务创建桶时,请选择华北区。单击桶名称,点击“对象 > 新建文件夹” ,配置转码服务输入、输出文件存放目录。单击桶名称,点击“对象 > 上传文件” ,上传媒体资源文件。OBS文档中提供了多种上传方式,包含大文件上传、批量上传,文件上传的详细操作方法请参考对象存储服务帮助文档。登录媒体转码服务控制台,进入“云资源授权”页面并授权。转码服务只能从经过授权的桶上获取媒体文件,并将输出的转码文件写入经过授权的桶。
  • [教程] 如何在DLS服务中使用自定义caffe
    如何在DLS服务中使用自定义caffe目前,DLS提供的Caffe引擎是官方1.0版本,但也有团队咨询想在DLS上使用自定义的caffe,正常流程是各团队提需求到DLS,由DLS提供定制化的caffe引擎开放给提需求的团队使用。这种方式对于需求提出方来说时间过长,且不够灵活,对于DLS团队来说各团队的caffe版本不同,上线和维护成功都很高。本文将介绍DLS新上线的自定义caffe的使用方法,思路是利用jupyter自带terminal的功能,让用户自己在terminal中自行编译及使用caffe。步骤:1.          创建caffe GPU引擎的开发环境。2.          使用Moxing接口从OBS下载caffe源码。3.          编译caffe。4.          上传caffe二进制文件到OBS,以便下次使用。5.          使用caffe。具体步骤:1.          在DLS服务界面上创建caffe GPU引擎的开发环境                               2.          打开Notebook,使用Moxing接口从OBS下载caffe源码到本地目录:/cache(容器里面的其他目录剩余磁盘空间有限,而/cache是DLS挂载的SSD盘,有较大的存储空间,可以满足绝大部分需求)1.          新建Notebook,在新建窗口中使用moxing接口下载OBS上的caffe源码到本地。                                           2.          新建Terminal,解压下载的caffe源码                                                    3.          编译caffe 在Terminal中进入caffe源码目录,编译自定义caffe,命令参考:        make all -j16  make test -j16  make runtest -j16  make pycaffe   make distribute                               4.          上传caffe二进制文件到OBS,以便下次使用。 压缩编译好的caffe,使用notebook上传caffe包到OBS,下次可以直接下载使用,不需要再次编译,同时将home目录下的caffe替换成编译好的caffe。参考命令:        mv distribute caffe  tar -czf caffe-v0.1.tar.gz caffe  mv ~/caffe ~/caffe.back  cp -rpf caffe ~/                                                                               5.          使用caffe1.          下载数据 同样在Notebook中使用moxing接口下载训练代码和数据到/cache目录。moxing支持文件,文件夹并发下载,API请参考:moxing api 。2.          执行释放缓存命令(在容器内cache缓存满的时候,运行caffe会出现错误,故在启动caffe和退出Notebook请务必执行如下命令)      echo 3 | sudo /usr/bin/tee /proc/sys/vm/drop_caches3.          执行运行代码。4.          手工上传snapshot。在合适的时候,可以在Notebook中使用moxing接口上传snapshot到OBS上。如果之前已经在DLS上编译过caffe并已上传到OBS,可以直接在Notebook中从OBS上下载caffe,替换/home/work目录下的caffe,然后从第5步执行训练。 注意:1.          caffe.bin位置从原先的/user/local/caffe/bin/caffe.bin更改到了/home/work/caffe/bin/caffe.bin。2.          从OBS上下载代码、数据等内容时,请保存到/cache目录,原因是容器内剩余空间有限,请使用DLS挂载的SSD盘。3.          在启动训练任务或者退出开发环境前,请先在Terminal内执行释放缓存命令,否则会报显卡加载异常错误。命令参考:      echo 3 | sudo /usr/bin/tee /proc/sys/vm/drop_caches4.          请适时上传snapshot。5.          在开发环境退出前,下载到本地的数据会一直保留,但重新创建开发环境时需要重新下载caffe,训练代码及数据。 约束:由于DLS安全设计,用户是不能随意安装OS级别软件包,所以当自定义caffe依赖的OS包和开源caffe一致的情况下可以使用此方法,如果超出此范围,有如下两种处理方式:1.          给DLS提需求,要求增加第三方软件包。2.          将相关的so包上传OBS上,使用时从OBS上下载并配置到LDLIBRARYPATH中。DLS自定义caffe使用.pdf( 预览 )
  • [技术干货] 使用nodejs实现head携带验证信息方式实现上传和下载简单技术分享
    为公司有通知文件管理和归档的需求,所以购买了一个华为云OBS服务,使用自开发接口来进行通知文件的上传下载,由于通知文件有短时高并发访问的特点,决定使用nodejs来实现,毕竟node在通讯和IO上有他独特的优势。开发过程中遇到了一些小坑,但是在华为云服务技术人员的支持下,完成了核心的功能上传和下载,这里简单的分享下。华为文档在官网上都可以查询到,需要根据文档来进行开发的,部分文档说明不明确的地方可能会造成开发人员的困惑,我这里会对这些进行简单的说明。华为云OBS有标准的nodejs-SDK,可以进行下载使用,只是该SDK不是很适用于我们的项目,因为我们小文件居多,也有自己的业务组件,所以没有采用SDK的方式进行实现,而使用了更轻量级的head携带信息进行请求的方式来进行实现。查阅head方式调用api的文档。核心内容就是head的Authorization的签名生成,这里直接举例子进行签名的生成,下面将分别从实例上介绍上传和下载的功能实现。至于秘钥文件的获取和部分前台操作相信大部分运维人员会搞定,这里就不做详细说明了。 场景:桶下有一个文件需要下载,桶命:buk1,文件名:test.txt,下载到本地项目目录./buk1/test/ 路径下第一步,构造请求的URL,这里注意。需要把文件的key拼接在云服务桶的endpoint后。比如,从前台获取到的桶的endpoint是http://桶名.obs.cn-south-1.myhwclouds.com,你要下载文件的key是/test.txt,这个时候你的完整的请求url就是http://桶名.obs.cn-south-1.myhwclouds.com/test.txt;第二步,构造Authorization参数,这里的组成请参考官网文档,值得注意的是,不要随意颠倒拼接的顺序,要严格按照官网的顺序进行拼接,拼接的时候注意以下几点:1.标准时间,这里注意的是,使用的是格林威治的标准时间,不需要进行时区的转换,node重获取这个时间和时间字符串的方法如下var gmdate = new Date();var utcdate = gmdate.toUTCString();2.请求方法,下载的请求方法为GET,node中直接定义var httpMethod = ‘GET’ 即可;3.SK:SK全名SecretAccessKeyID,作为加密的秘钥,这个可以从前台获取4.AK:AK全名AccessKeyid,作为一个标识,放入Authorization头,后面会说明5.CanonicalizedHeaders 和 CanonicalizedResource,按照文档进行配置,下载这里有时候需要加入一个Content-Type字符串避免签名验证失败,例如txt类型的文件的Content-Type就是text/plain准备好以上的变量后就是开始计算Signature了,根据华为OBS文档,这里直接展示拼接的字符串在node中的代码var beforestr = ‘GET’+ "\n" + "\n" + "text/plain\n" + 时间(utcdate变量) + "\n" + "/桶名/test.txt";这个字符串注意几点,除了最后,每个字符串拼接需要拼接一个‘\n’,直接使用字符串即可,不用考虑转义。关于text/plain就是txt文件的Content-Type,有时候必须加入这个参数后才不会出现403签名错误,最后的字符串参照文档即可,即/桶名/key名,具体各种文件的Content-Type可以查阅附件(从官方标准SDK中剥出来的)ContentType.rar接下来就是对这个字符串进行加密,。加密的过程很标准,这里直接给出代码,如下       var signaturestr =crypto.createHmac("sha1",秘钥(SecretAccessKeyID)).update(utf8.encode(beforestr)).digest().toString("base64");       到此获取完最复杂的签名后就是构造请求头部,这里比较简单,直接贴出代码做简单说明        var headarr = {                "Date": utcdate,  //这里的时候就是注意使用上方的签名中的时间字符串,避免在new一个新的,会造成时间不一致导致签名失败                "Host": "桶名.obs.cn-south-1.myhwclouds.com",//照抄,注意这里不要在尾部添加文件key                "Authorization": "OBS AK(AccessKeyid):" + signaturestr,   //注意空格和:                "Content-Type": " text/plain " //这里尤其要注意和上方加密的字符串保持一致,意思就是字符串中有,这里必须有,否则将导致签名错误        }; 至此,需要准备的变量都完成了,准备进行API请求,我使用的是node的request模块,这里比较简单,直接贴出代码。注意保存路径必须存在,否则会出错,相关验证请自行根据应用场景添加var options = {        url: http://桶名.obs.cn-south-1.myhwclouds.com/test.txt        headers: headarr    };httprequest(options).pipe(fs.createWriteStream(‘./buk1/test/test.txt’)).on("close", function (err) {        if (err) {            console.log(err);            //错误操作        }      //成功操作      });关于上传:      有了下载的经验,实现上传就简单的多了。直接贴出代码(代码片段,比如模块引入等,不全请注意自行补全).      场景:把代码目录下的test.txt上传到:桶名/test.txt 的key中      但是有个注意点需要特别注意,就是自定义CanonicalizedHeaders 和 CanonicalizedResource的时候,必须要按照文档的顺序,从上至下添加,不能违反文档的顺序,截图如下,并且要注意各个API允许的CanonicalizedHeaders 和 CanonicalizedResource是不一样的,要遵循文档结合应用场景进行设计。  var crypto = require('crypto');var utf8 = require('utf8');var fs = require('fs');var httprequest = require(‘request’)fs.readFile('./test.txt', function (err, data) {        if (err) {            console.log(err);        }        console.log('----------data---------------')        console.log(data);        console.log('-----------------------------');         var datalength = data.length;          var url = 'http://桶名. obs.cn-south-1.myhwclouds.com/test.txt';         console.log('url---->' + url);        var gmdate = new Date();        var utcdate = gmdate.toUTCString();        var httpMethod = "PUT";  //注意,上传使用的是PUT方式        var beforestr = httpMethod + "\n" + "\n" + "text/plain\n" + utcdate + "\n" + 'x-obs-acl:public-read\nx-obs-storage-class:STANDARD\n' + "/桶名/test.txt"; //注意x-obs-*的顺序        console.log('------------para-------------');        console.log(beforestr);        console.log('-----------------------------');        var SecretAccessKeyID = "你的SK";         var signaturestr = crypto.createHmac("sha1", SecretAccessKeyID).update(utf8.encode(beforestr)).digest().toString("base64");        console.log('sing------------->' + signaturestr);        var headarr = {            "Date": utcdate,            "User-Agent": "curl/7.15.5",            "Host": "obs-e06d.obs.cn-south-1.myhwclouds.com",            "x-obs-acl": "public-read",    //注意x-obs-*的顺序和上方字符串一致            "x-obs-storage-class": "STANDARD", //注意x-obs-*的顺序和上方字符串一致            "Authorization": "OBS 你的AK:" + signaturestr,  //注意空格和:            "Content-Type": "text/plain",         //和上方字符串保持一致            "Content-Length": datalength       //长度不可省略        };        console.log('------------head-------------');        console.log(head);        console.log('-----------------------------');             var options = {            url:url,            headers: headarr,            body: data        };        httprequest.put(options, function (error, response, body) {            if (!error && response.statusCode == 200) {                //可以使用response获取返回的header,里面有部分OBS返回参数            } else {                //错误处理        });    })     至此,node通过head签名方式实现文件上传和下载就实现了。这里为了展示过程,没有进行任何代码封装,比较直观,方便看到具体过程。如有遇到问题或者更好的建议,欢迎各位大神指出,共同进步!谢谢!
  • [技术干货] 将本地备份文件上传OBS,并还原到RDS SQL SERVER实例
    适用场景:1.用户可以将本地实例上的数据库通过全量备份生成备份文件,并通过OBS服务与DRS服务,将该备份文件直接还原到RDS SQL SERVER实例上2.用户从本地备份出来的备份文件的版本必须小于等于要还原的目标实例的版本。例如:你本地是2012标准版的实例,你备份出来的文件就只能还原到2014,2016标准版或企业版,不能还原到2008 的所有版本,和2014,2016的Web版上  操作步骤:1.首先备份你的本地实例上的一个数据库或多个数据库到一个备份文件中,备份文件后缀必须为.bak。脚本命令如下,我们可以将多个数据库备份到同一个备份文件中,也可分开来备份:BACKUP DATABASE [AdventureWorks] TO  DISK = N'D:\RDSDBDATA\BACKUP\LocalDatabase.bak' WITH NOFORMAT, NOINIT,  NAME = N'本地备份文件上传RDS [AdventureWokrs]', SKIP, NOREWIND, NOUNLOAD,  STATS = 10 BACKUP DATABASE [CBC] TO  DISK = N'D:\RDSDBDATA\BACKUP\LocalDatabase.bak' WITH NOFORMAT, NOINIT,  NAME = N'本地备份文件上传RDS [AdventureWokrs]', SKIP, NOREWIND, NOUNLOAD,  STATS = 10 BACKUP DATABASE [RDM_Count] TO  DISK = N'D:\RDSDBDATA\BACKUP\LocalDatabase.bak' WITH NOFORMAT, NOINIT,  NAME = N'本地备份文件上传RDS [AdventureWokrs]', SKIP, NOREWIND, NOUNLOAD,  STATS = 10 2.在备份前,需要对每一个数据库进行以下信息的确认:1.点击数据库属性,确认该数据库的恢复模式必须是完整;兼容性级别必须大于等于100;如果不是请更新该数据库,避免迁移报错2.同时数据库的恢复模式请改为完整 3.完成以上工作后,我们账号登录华为云官网,进入对象存储服务 4.我们在上面先创建一个公共桶。注意:1.该桶所在区域必须跟RDS SQL SERVER 实例所在区域一致  2.该桶最好设置为公共读写5.桶建好之后,可以直接通过在线页面能进行上传点击刚才生成的桶,在对象里面可以上传文件到根目录。注意:1.小于50M的文件支持页面上传2.目前DRS服务仅支持根目录上的备份文件上传,所以请直接上传文件,不要添加文件夹 6.如果你的备份文件大于50M,则需要下载OBS客户端进行上传操作。a.工具下载地址:https://developer.huaweicloud.com/toolsb.选择业务工具,下载OBS Browser工具 到本地,下载完成后可直接解压使用c.解压后双机obs.exe打开客户端通过AKSK密钥登录,AKSK可以在我的凭证下进行创建和管理,具体为:1).进入我的凭证2).选中管访问密钥,改密钥如果遗失,仅能通过删除重建进行重置。3).通过新获得的密钥,登录OBS Browser4).打开OBS Browser,点中右上方用户信息,选择账号管理,在账号管理中,输入上面的信息,在确认后跳转到该账号5).登录成功后选择添加桶,选择添加外部桶,输入下载页面上给出的桶名6).添加成功后点击进入该桶,在根目录下上传bak文件。 7.备份文件上传成功后就可以进入DRS服务,进行离线还原操作了。a.在页面上找到DRS数据库复制服务b.进入DRS控制台界面后,点击左侧离线迁移管理,再点击右侧创建迁移任务备注:如果你欠费了就看不到右边的创建迁移任务的按钮,请充值哦c.进入任务界面后在下方选中刚才上传备份文件的桶名,这是他会自动刷出该桶根目录下的所有.bak的备份文件,选中刚才上传的备份文件,点击下一步。备注:1.备份文件后缀必为.bak2.备份文件必须在桶的根目录下d.在目标RDS实例名选中你要还原的目标实例;在待还原数据库名输入你要还原的数据库名称,如果已有同名数据库存在于该目标实例上,请选中覆盖还原按钮。备注:1.目标实例的版本必须要大于等于你的备份文件源实例的版本,例如:你是从2014实例上备份下来的备份文件,你就只能在2014,2016实例上进行还原,无法还原到2008上2.待还原数据库名称需要注意大小写,必须跟备份文件中的数据库名称一致。e.点击下一步,最后生成离线迁移任务,并在离线迁移管理界面可查看到该任务的进展。备注:1.迁移过程中请耐心等待,原则上100G大小的备份文件还原只需要1小时2.迁移过程失败会有详细的报错提示,可根据报错提示修改对应设置再行上传,如有问题可联系在线客服或提工单寻求帮助f.迁移任务成功后可通过实例管理界面登录功能连接在线实例进行查看。1)进入关系型数据库管控面,点击登录2)在弹出页面输入该实例rdsuser主账号+密码,即可登入Das在线管理工具。3)登入后我们可以看到3个数据库已经全部还原成功,大家快去使用吧。备注:DAS是华为公有云RDS全新上线的在线数据库管理工具,兼容MYSQL&SQL SERVER,便捷易用,目前公测中,申请入口:http://www.huaweicloud.com/product/das.html
  • [教程] OBS权限管理配置实践
    OBS权限管理配置实践参考1       背景介绍       华为云与Amazon S3的权限管理实现一致,对象存储是采用结合统一身份管理服务来做的访问权限控制。       具体来说就是在统一身份管理中创建用户组并对该用户组赋予特定资源的特定访问权限,然后创建用户将用户加入到所需对应资源和访问权限的用户组,该统一身份管理中资源的粒度是服务,不支持更细粒度的资源控制,如果要做到更细粒度的资源权限控制就需要靠桶策略来进行控制。在完成用户和用户组的配置后,在对象存储的桶权限管理中桶策略的高级设置,通过添加高级桶策略来完成指定资源特定访问权限配置。       这两天在华为云上摸索了一下通过查看资料和提工单搞了一下简单验证,详细成果在这里给大家分享一下。本文中首先通过控制台完成相关资源创建和策略配置,然后采用开源工具s3curl进行业务验证,工具下载路径:https://github.com/rtdp/s3curl。2       场景一:给子账户授权2.1       方案说明通常一个大企业下面可能会分设多个业务部门,多个业务部门之间的数据需要独立管理的场景下可以考虑使用不同子用户进行独立的资源和权限配置。A账户下创建两个子账户A1/A2,为两个子账户授予桶的上传对象权限,然后验证两个子账户的权限是否正确。2.2       配置操作2.2.1       使用统一身份认证服务控制台 创建用户组输入用户组名后点击确认进行创建(以创建“obstest”为例)2.2.2       修改创建的用户组中对象存储服务权限为Buckets Viewer1)在用户组中点击新创建用户组的修改按钮2)点击用户组权限的对象存储服务对应的修改按钮3)选中权限为“OBS Buckets Viewer”权限,赋予该用户组内用户具有列举该主账户所有桶的权限2.2.3       创建用户并将用户加入用户组中依次创建userA1、userA2后可以看到该用户组的权限及用户配置信息2.2.4       获取账户ID(租户ID)和子账户ID配置桶策略1)在账户-我的凭证中获取账号ID2)在统一身份管理用户-基本信息中获取子账户ID3)登陆对象存储控制台,使用账户A创建桶:obs-bucketpolicy,该桶内创建子目录abc,在桶策略-高级配置中添加桶策略。a.同时为userA1、userA2配置特定桶内特定资源上传权限说明:1、  桶策略中“被授权用户”字段: 被授权用户指本条桶策略作用的账户或用户。被授权用户可以选择,可以同时选择多个。2、 桶策略中“资源”字段:资源指桶或对象。您可以指定一个对象或对象集,比如fileA*,fileB*,当指定给对象集时,使用通配符“*”。如果不输入,则表示指定资源为桶,且在动作处只能选择与桶相关的。多个资源使用英文逗号分隔。3、    桶策略中的“动作”字段:指定本条桶策略可以执行的操作。例如:上传、下载、删除等。4、    桶策略中的“条件”字段:指定本条桶策略可以执行的操作。通过设置该字段可以实现指定IP、指定域名等访问该策略所限定的资源。2.3       权限验证使用子账号的AK/SK进行业务验证2.3.1       获取主账号和子用户的AK/SK1.    主账号AK/SK获取在主账号-我的凭证-管理访问密钥中,通过新增访问密钥来创建主账号的密钥。2.    子用户AK/SK获取在统一身份认证服务控制台-用户列表中,通过对应用户的“设置凭证”按钮进入密钥创建控制台。在设置凭证页面通过“管理访问密钥”-“新增访问密钥”来创建子用户的访问密钥。注意:创建子用户密钥时提示需要输入“登陆密码”,此次需要输入的密码为主账号的登陆密码,不是子用户密码。2.3.2       开源工具s3curl配置用户的AK/SK并在s3curl中添加obs的endpoint1)          vim 编辑s3curl工具目录下的.s3curl文件,添加2个子用户的AK/SK2)          vim编辑s3curl工具目录下的s3curl.pl脚本,添加obs的endpoint2.3.3       使用userA1、userA2上传对象到桶内的abc/目录下上传成功,上传到其他目录失败,下载资源也失败1)          userA1上传对象到abc/目录下,上传成功。2)          userA2上传对象到abc/目录下,上传成功。登陆控制台可以看到对应路径下有上传成功的文件。3)          userA1/A2上传对象到非abc目录下,上传失败。a.      使用userA1上传对象到桶根目录下,上传失败,提示无权限访问。b.      使用userA2上传对象到def目录下,上传失败,提示无权限访问。4)          userA1/A2下载桶内对象,下载失败,提示无权限访问。a.使用userA1下载桶根目录下的资源,下载失败。b.使用userA2下载赋予其上传权限路径下资源,下载失败。3       场景二:子账户桶资源隔离3.1       方案说明按照前一个场景的配置虽然可以实现不同子账号只能访问配置了特定访问策略的资源,但是每个子用户都可以看到该租户账号下面的所有桶资源无法做到每个子用户只能看到自己有权限访问的桶。通过使用OBSBrowser挂载外部桶的方式可以实现子用户的桶资源隔离。A账户下创建子账户userB,为子账户授予特定桶内资源的完全访问权限,然后使用OBSBrowser挂载外部桶方式验证子账户的权限是否正确。3.2       配置操作3.2.1       直接创建子用户,不添加到任何用户组或者添加到不具有OBS访问权限的用户组中使用A账户登录华为云,创建子用户userB,此用户不设置OBS访问权限。创建userB后可以看到该用户未配置相关用户组。3.2.2       获取账户ID(租户ID)和子账户ID配置桶策略1)在账户-我的凭证中获取账号ID。2)在统一身份管理用户-基本信息中获取子账户ID。3)登陆对象存储控制台,找到需要配置子账户访问的桶,在桶策略-高级配置中添加桶策略。a.为userB配置特定桶内特定资源完全访问权限。b.为userB配置特定桶的列举权限。配置结果重复该步骤,为另外一个桶也配置相同的用户策略。3.3       权限验证使用子账号的AK/SK进行业务验证3.3.1       获取主账号和子用户的AK/SK1.    主账号AK/SK获取在主账号-我的凭证-管理访问密钥中,通过新增访问密钥来创建主账号的密钥。2.    子用户AK/SK获取在统一身份认证服务控制台-用户列表中,通过对应用户的“设置凭证”按钮进入密钥创建控制台。在设置凭证页面通过管理访问密钥-新增访问密钥来创建子用户的访问密钥。注意:创建子用户密钥时提示需要输入“登陆密码”,此次需要输入的密码为主账号的登陆密码,不是子用户密码。3.3.2       使用OBSBrowser配置子账户的AK/SK通过挂载外部桶方式挂载配置有访问权限的桶1)          配置子账户AK/SK2)          挂载两个外部桶在直接使用添加的子账户进行登录时会遇到如下报错信息,请点击确认后忽略该报错。然后点击“添加桶”按钮,并在添加桶的配置窗体中选择“添加外部桶”并输入正确桶名点击确定,即可完成外部桶挂载。重复操作将两个桶都挂载上3.3.3       对挂载的桶进行上传下载删除对象均成功4       景三:给不同租户(账户)授权4.1       方案说明A/B/C三个账户,A账户为桶owner,A账户给B账户赋予上传对象权限,给C账户赋予下载对象权限。4.2       配置操作4.2.1       获取租户的账户ID4.2.2       使用A账户登录console,为特定桶配置桶策略举例:为账户配置obs-ydy-des桶上传对象的权限为B账户配置写入权限,为C账户配置读取桶内资源的权限。4.3       权限验证使三个账户的AK/SK使用S3Curl工具进行验证业务4.3.1       配置工具A/B/C三个账户的AK/SK(A账户:usertzf  B账户:userydy  C账户:userhqh)4.3.2       使用A账户上传对象成功使用A账户,上传成功Console控制台可以看到上传的文件4.3.3       使用B账户上传对象成功,上传是指定桶owner具有该对象完全控制权限 使用B账户,上传成功Console控制台客户查看到上传成功的文件4.3.4       使用B账户只能下载自己上传的对象,无法下载A账户上传的对象1)          B账号下载自己上传的对象,下载成功2)          B账号下载A账户上传的对象,下载失败4.3.5       使用C账户下载对象成功1)          C账户下载A账户上传的对象,下载成功2)          C账户下载B账户上传的对象,下载失败失败原因:桶策略由桶Owner设定,只会对桶Owner上传的对象生效,无法对其他用户上传的对象生效。4.3.6       使用C账户无法上传对象使用C账户上传对象时提示无权限,上传失败5       场景四:委托服务进行OBS访问5.1       方案说明       在需要使用其他服务来对OBS中的数据进行访问时,可以通过创建委托的方式来实现。委托创建后被委托的服务可以用创建委托的租户身份来对OBS资源进行访问。本方案例中以委托ECS通过AK/SK+STStoken访问OBS为例进行说明。5.2       配置操作5.2.1      登陆统一身份认证服务控制台,创建委托选择委托类型为“云服务”,在云服务中选择“ECS BMS”,在权限选择中配置“全局服务-对象存储服务的策略为Tenant Administrator”5.2.2       创建ECS时在高级中配置使用创建的委托5.3       55.3    权限验证5.3.1       登陆ECS获取临时AK/SK和STSToken执行命令: curl http://169.254.169.254/openstack/latest/securitykey 获取临时AK/SK和STSToken,其中169.254.169.254是ECS服务委托时的IP,如果其他云服务创建委托,需要使用各自云服务的IP地址。具体IP地址需要从云服务接口人获取。5.3.2       使用s3curl验证访问权限添加临时AK/SK用户执行命令:./s3curl.pl --id=linshi -- -H "x-amz-security-token:***(token的内容)*** " http://obs-wjl2.obs.cn-north-1.myhwclouds.com/123.txt -v注意:通过委托形式访问OBS不支持跨Region的访问,原因是IAM为非全局服务,每个Region的IAM独立提供鉴权服务。但是创建的委托配置全局共享。如果ECS跨Region采用临时AK/SK+STStoken访问访问OBS会提示找不到AK/SK记录。6      场景五:委托租户采用临时AK/SK+Ststoken进行OBS访问6.1      方案说明    假设非华为云服务的账户为ThomasYang,使用非华为云服务的租户为shan0304。在需要使用应用市场上的非华为云自身服务来对OBS中的数据进行访问时,可以通过shan0304创建委托提供该服务的第三方应用的租户ThomasYang的方式来实现。委托创建后被委托的租户可以用创建委托的租户身份来对OBS资源进行访问。本方案例中以委托某租户通过AK/SK+STStoken访问OBS为例进行说明。6.2      配置操作租户shan0304登陆统一身份认证服务控制台,创建租户委托。选择委托类型为“普通账号”,委托账号中输入被委托租户的账号名称,在权限选择中赋予对象存储Tenant_Administrator权限。                                               6.3      权限验证6.3.1        获取被委托租户具有te_agency权限的token以postman为例进行说明,采用post方法调用IAM的v3/auth/tokens接口,在header中配置Content-Type为application/json,然后在Body中输入如下信息(参考截图):执行如下命令:https://iam.myhuaweicloud.com/v3/auth/tokens在响应消息的Headers中获取X-Subject-Token字段,该字段即为所需的token信息。可以在响应消息的body中查看roles字段,确认该token具有te_agency权限。6.3.2        使用具有te_agency权限的token获取临时AK/SK+Ststoken以postman为例进行说明,采用post方法调用IAM的v3.0/OS-CREDENTIAL/securitytokens接口,在Header中输入Content-Type为application/json,以及X-Auth-Token字段添加前一步中获取到的token信息。并在Body中输入如下信息(参考截图):在响应消息的Body中获取所需的临时AK/SK和Ststoken,参考下图6.3.3        使用s3curl验证临时AK/SK+Ststoken的权限添加临时AK/SK用户执行命令:./s3curl.pl –id=linshi -- -H “x-amz-security-token:****” http://dfv-video.obs.cn-north-1.myhwclouds.com -v其中dfv-video是tangzifu账户中的桶。7      场景六:配置桶策略限定权限的子用户临时AK/SK+Ststoken进行OBS访问7.1      方案说明当前IAM无法提供权限伸缩功能,类似于阿里云的RAM中“角色”功能(具有一定权限的用户)。华为云可以提供子用户+桶策略的方式来达到相同效果。首先在统一身份管理中创建一个子用户,该子用户不具备对象存储的任何访问权限,然后给指定桶配置该子用户的桶策略限定该子用户具有某个桶特定资源的特定操作权限。以子用户的用户名密码获取到子用户的token,再获取子用户的临时AK/SK+STStoken,以临时AK/SK+Ststoken的方式访问资源。7.2      配置操作7.2.1        直接创建子用户,不添加到任何用户组或者添加到不具有OBS访问权限的用户组中7.2.2        给指定桶配置该子用户的桶策略以自定义模式给子用户7.3      权限验证7.3.1        获取子用户的token以postman为例进行说明,采用post方法调用IAM的v3/auth/tokens接口,在header中配置Content-Type为application/json,然后在Body中输入如下信息(参考截图):在响应消息的Headers中获取X-Subject-Token字段,该字段即为所需的token信息。7.3.2        使用子用户的token获取临时AK/SK+Ststoken以postman为例进行说明,采用post方法调用IAM的v3.0/OS-CREDENTIAL/securitytokens接口,在Header中输入Content-Type为application/json,以及X-Auth-Token字段添加前一步中获取到的token信息。并在Body中输入如下信息(参考截图):在响应消息的Body中获取所需的临时AK/SK和Ststoken,参考下图7.3.3        使用s3curl验证临时AK/SK+Ststoken的权限添加临时AK/SK用户执行命令:./s3curl.pl –id=zhihu –put=./README -- -H “x-amz-security-token:****” http://obs-mei1.obs.cn-north-1.myhwclous.com/zhihu/123.txt -v
  • 一张图带你了解对象存储云相册解决方案
  • 有没有针对WordPress的对象存储的插件
    WordPress默认上传后的地址是本地服务器,有没有写好的插件使得同时上传至对象存储,默认地址自动变成对象存储的地址?
  • obs c++接口问题
    问1)obs 是否提供 c++ api ?2)华为私有云的 obs 接口与 这个共有云接口 api 是否是一样的?
  • 一张图带你了解对象存储 OBS 3.0
  • [技术干货] 家用监控不安全?您可能Out了
    https://www.toutiao.com/i6579913745969971716/ 2017年中国家用摄像头市场空间为3350万台预计到2020年累计达到9000万台!如今,越来越多人选择在家里安装摄像头,其原因一般有两种:安防需求(如有不法分子入侵,可及时报警或留下侦破线索)和互动需求(可与家人或宠物时刻互动)。家用摄像头好处多多,但你知道家用摄像头的不足与隐患吗?存储卡>家用摄像头较为常见的本地储存方式,是通过机身或者储存卡进行储存,如果出现供电故障,存储卡损坏或拔出,摄像头就成了摆设,小偷就可以肆无忌惮…Wi-Fi联网 >Wi-Fi联网后的家用摄像头可远程操作,十分方便,但也留下了安全隐患,家中的情况除了你,可能还有黑客查看,一不小心就给了黑客牟利的机会。家里装了摄像头的你,看完是不是有点担心?不用害怕!小云告诉你一个解决方法那就是...让摄像头上云华为云针对数千万的视频监控市场,提供了基于公有云的视频监控解决方案,让用户用的放心。下面我们就来解读一下该方案:华为云视频监控解决方案摄像头接入首先,用户购买一个或者多个云监控厂商的家用摄像头,并使用个人账户密码通过加密的通道,接入该厂商在华为云上运行的视频监控管理平台。而后只要摄像头和网络工作正常,视频数据就已经开始源源不断传输到华为云上并加密存储。客户端接入用户在PC,Pad或手机下载并安装摄像头厂商的客户端,并与自用的摄像头关联(账户+密码等方式),便可以通过客户端对摄像头进行配置和查看状态。视频直播监控直播对公有云网络质量和存储系统的性能要求极高,随着接入摄像头的数量从十几万到几百万乃至上千万,如果公有云性能无法满足业务快速增长的需求,很快就会出现严重性能瓶颈,影响用户观看效果。视频存储和视频回放视频监控平台,最重要的就是视频内容的存储和回放,这就涉及到视频监控平台的核心环节:视频数据的存储和读取。视频监控平台的数据存储量非常巨大,当平台摄像头个数持续增加和用户更多视频需要长期保存时,就需要云存储系统必须拥有EB(1EB=10亿GB)级容量扩展能力。当视频保持到云存储后,要能及时读取和回放,数据持久性(数据不丢失能力)极其重要。还有就是当超千万的摄像头同时接入,更需要云存储能快速同时相应,需要超强的网络接入能力。而华为云的对象存储服务,为全新全自研的OBS 3.0架构, 支持EB级扩展能力,整体性能领先业界其他公有云对象存储30%以上。更是拥有惊人的超过11个9的数据持久性,华为云OBS丢失数据的概率,比一棵树被陨石砸到的几率还低100倍!!!AI智能分析随着智能家庭的应用范围越来越广泛,用户也会不再满足于单纯的实时监控及回放功能,因此需要视频监控平台拥有更加全面的AI分析的能力,如人脸识别、声音检测、动作检测、图形搜索等需求逐渐应用。华为云对象存储OBS服务联合合作伙伴,除了给用户提供上面描述视频在线分析能力外,还可提供视频离线分析能力。最重要的最后说所有用户都非常关注公有云平台安全性和隐私性,华为云是全球唯一具备软硬件一体化优势的云安全服务提供商,而华为云对象存储OBS服务,更是严格贯彻华为云“不碰数据”的根本原则,做到了真正的全面安全和隐私保护,让用户放心使用。
  • [大咖交流] 【示例模板】【ecs-obs】部署展示及详解
    使用示例模板创建云服务器和存储桶(ecs-obs)创建堆栈,可以得到一个ECS云服务器和一个OBS对象存储桶。可以在ECS界面登陆这个云服务器,在OBS界面访问到该存储桶。【部署结果展示】ECS云服务器OBS对象存储桶【部署流程详解】使用ecs-obs示例模板创建堆栈填写堆栈名称和描述填写输入参数(1)弹性云服务器:填写可用区,虚拟私有云ID(VPC ID),子网ID(subnet ID)。提示:此模板适用于高性能科学计算场景,因此规格的默认值为高性能计算型hc2.xlarge.2,可以根据需要修改规格、镜像、实例数、名称等信息(2)存储桶:填写桶的名称,可以根据需要修改桶的访问权限。注意事项:由于对象存储桶(OBS桶)的名称是全局唯一的,因此建议修改默认桶名点击下一步,审核配置信息,查看计费信息,点击创建堆栈等待创建成功点击“堆栈元素”中相应的资源链接,可查看到创建出的资源。
  • [大咖交流] 【示例模板】【obs】部署展示及详解
    使用示例模板创建对象存储桶(obs),可快速创建一个OBS对象存储桶,以存放任意类型文件。适合普通用户、网站、企业和开发者使用。【部署成果展示】在对象存储服务中,可以使用创建出来的存储桶。【部署流程详解】1. 使用obs示例模板创建堆栈2.填写堆栈名称和描述3.填写输入参数【桶名】,选择桶的【访问控制权限】。注意事项:由于对象存储桶名是全局唯一的,建议修改默认桶名。4.点击下一步,审核配置信息,查看计费信息,点击创建堆栈5.等待创建成功。6.点击资源名称列的资源,在对象存储桶服务页面查看存储桶。
  • [技术干货] 如何把DLS的日志重定向到自己的OBS中
    在DLS(Deep Learning Service)训练作业中,查看作业日志如下这里默认显示最新的输出日志,把鼠标定位到日志文本框中,通过鼠标滚轮的上滑可以不断的去刷更早的日志。当日志量非常大时,有可能上滑很久都没有你想看的那几行日志,很不方便,但目前DLS的全量日志下载功能还没有发布,所以提供一个trick可以让用户将自己的日志重定向到一个OBS文件中。这种方法可以应对用户使用logging模块输入日志时,把日志重定向到OBS文件s3://bucket_name/sub_dir_0/logging.txt中(注意仅针对logging方法,print方法不行) import loggingimport moxing as mox stream = mox.file.File('s3://bucket_name/sub_dir_0/logging.txt', 'w')logging.basicConfig(level=logging.INFO, stream=stream)console = logging.StreamHandler()console.setLevel(logging.INFO)logging.getLogger('').addHandler(console)...logging.info('hello world')...stream.close() 在最后一定记得将stream关闭,才能保证日志文件正确输出到OBS了,如果想在代码运行过程中不断写入log文件,每次调用:stream.flush()则会将日志文件同步到OBS。另外,如果日志的文本量特别大,那么每次flush会影响训练作业本身的效率,所以建议尽量控制flush的频率不要太高 
  • [问题求助] 有没有PHP方面的华为云对象存储的资料或者案例
    有没有PHP方面的对象存储的资料或者案例
  • 对象存储有php的sdk么
    有php的么
总条数:821 到第
上滑加载中