华为云用户手册

  • IAM 身份认证 Workspace支持通过IAM进行精细的权限管理,实现用户身份认证、权限分配、访问控制等功能,可以帮助您安全的控制资源的访问。 您可以在账号中创建IAM用户,并授权控制他们对资源的访问范围。IAM权限是作用于云资源的,IAM权限定义了允许和拒绝的访问操作,以此实现云资源权限访问控制。 权限管理简介,请参见权限管理。 授权使用Workspace,请参见创建用户并授权使用Workspace。 自定义策略,请参见Workspace自定义策略。 策略及授权项详情,请参见策略及授权项说明。
  • 约束与限制 本章节介绍 云桌面 服务产品功能的使用限制。 表1 云桌面使用限制 场景 限制项 限制说明 购买桌面 账号 只有使用实名认证后的账号登录云桌面控制台才能购买桌面。 是否对接AD 购买桌面后,不支持变更是否对接AD。 对接AD时,需确保云桌面所在网络与微软AD所在网络互通。 区域 不同区域的桌面之间内网互不相通,且需分区域管理桌面。 CPU架构 支持鲲鹏计算和X86计算。 桌面操作系统 目前支持UOS V20 1050操作系统版本、Windows Server 2016/2019操作系统版本。云桌面将会持续增加操作系统支持范围。 系统盘 受所选区域资源限制,系统盘大小需设置为80~1020GB。 数据盘 受所选区域资源限制,最多只能添加10个数据盘,且每个数据盘大小需为10~1020GB之间的10的整数倍。 网络 云桌面预留172.20.0.0/16~172.31.0.0/16网段作为内部服务运行网段,故请勿选择172开头的VPC网络,否则将无法成功购买桌面。 分配用户 每个桌面只能属于单个用户。 登录桌面 移动终端 支持安装了Android 6.0以上版本操作系统的移动终端设备登录桌面。 瘦终端和PC软终端 支持操作系统为Windows 10以及macOS(10.14~12.4,64位)的PC软终端,以及适配的瘦终端(UOS、Android等操作系统)登录桌面。 配置桌面 策略 桌面策略会在用户下一次登录桌面后生效。 支持从客户端到服务端或服务端到客户端的单向复制或者双向复制。 仅在客户端(TC/SC)操作系统和云桌面操作系统均为Windows时,支持富文本复制、文件复制,且最多同时可复制500个文件。 当客户端(TC/SC、移动客户端)操作系统或云桌面操作系统为其他时,只支持纯文本格式复制,不支持文件复制。 渲染加速仅适用多媒体 视频编辑 场景,其它场景不建议打开。 默认策略为预设好的通用策略,且不支持优先级修改。 当您创建多条策略时,默认策略的优先级最低。 单一区域默认的策略配额为50个。 网络接入方式 云桌面可同时支持互联网接入方式和专线接入方式,并且同一时间内至少保持一种接入方式处于开启状态,不可将两种接入方式同时关闭。 云桌面使用172.20.0.0/16~172.31.0.0/16网段为桌面管理网卡的保留网段,使用云专线的方式与企业内网的PC进行通信时,请避免在企业内网使用此网段,以免路由冲突而导致无法互相访问。 使用云专线接入方式需要创建 VPC终端节点 。 配置云桌面可访问企业内网 使用防火墙时,需确保防火墙中出方向的8443端口和443端口为放通状态。 变更规格 变更规格过程中,请勿对云桌面进行其他操作。 仅支持从通用办公版套餐类型变更为尊享版套餐类型。不支持其他跨套餐类型的规格变更。 重建系统盘 重建系统盘前,桌面“登录状态”不为“无法连接”,且“运行状态”为“运行中”或“已停止”。 重建系统盘后,原系统盘中的数据(如桌面,收藏夹等)会丢失,如果需要这些数据,请提前通知用户备份。 重置系统盘时,如果该云桌面使用的私有镜像,需确保该私有镜像仍存在。 管理桌面 重发通知邮件 只在该用户绑定了桌面的情况下,可重新发送通知邮件。 删除用户 只在该用户未绑定桌面的情况下,可删除用户。 重置密码 已对接Windows AD域,将无法给桌面用户重置密码。 解锁用户 已对接Windows AD域,将无法对桌面用户进行解锁。 禁用操作(UOS操作系统桌面) 执行命令项 禁止执行pkill hdp命令和pkill Xvfb命令结束进程,否则导致系统运行存在异常。 禁止执行ifconfig eth* down命令禁用网卡,否则导致桌面无法连接网络。 卸载项 禁止更换桌面图形界面软件,否则导致系统性能异常。 禁止卸载samba和winbind组件,否则导致系统运行异常。 删除项 禁止删除/etc/init.d/hdp**开头的文件,否则导致系统运行异常。 禁止删除28511/28512/28521/28522端口,否则可能导致虚拟机连接失败。 升级项 禁止自行升级Linux内核,否则可能导致系统崩溃。 禁用操作(Windows操作系统桌面) 进程和服务 禁止更改系统配置中默认的服务和启动选项。 禁止结束任务管理器中“LOCAL SERVICE”、“NETWORK SERVICE”和“SYSTEM”类进程。 禁止禁用HDP类服务。 禁止卸载以下程序。 Access Agent Microsoft .NET Framework x Client Profile Microsoft .NET Framework x Extended Microsoft Visual C++ xxx Redistributable - xxx 网络 禁止禁用网卡、禁用或修改网络配置。 禁止执行修改路由的脚本或命令,如route DELETE *。 禁止在Windows防火墙例外选项中删除28511、28512、28521和28522端口。 禁止打开IPsec等具有禁用网络流量功能的软件或工具。 其他 禁止删除“C:\Program Files\Huawei”目录下的文件和文件夹。 禁止对桌面执行睡眠操作,桌面默认不启用睡眠操作。 禁止修改HDP客户端(Access Agent)配置文件。 禁止运行魔法兔子或Windows优化大师等软件对注册表进行清理和优化。 自定义安装具有变换功能的屏保会消耗大量系统资源,导致用户重新进入桌面时会有一定延迟,请慎重操作。 云桌面使用 云桌面接访问互联网 云桌面是通过绑定数据中心的IP进行互联网访问,部分娱乐类的网站基于自身运营的需要,会对数据中心IP访问进行限制,导致的结果是云桌面无法访问相关的网站,目前识别到的有是优酷、淘宝等网站。
  • 权限和授权项 策略包含系统策略和自定义策略,如果系统策略不满足授权要求,租户管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下: 权限:允许或拒绝某项操作。 对应API接口:自定义策略实际调用的API接口。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 依赖的授权项:部分Action存在对其他Action的依赖,需要将依赖的Action同时写入授权项,才能实现对应的权限功能。 IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。 授权项(Action) 对应API接口 授权项说明 IAM项目(Project) 企业项目(Enterprise Project) workspace:desktops:create POST /v2/{project_id}/desktops 创建桌面 √ √ workspace:desktops:update PUT /v2/{project_id}/desktops/{desktop_id} 更新桌面信息 √ √ workspace:desktops:delete DELETE /v2/{project_id}/desktops/{desktop_id} 删除桌面 √ √ workspace:desktops:get GET /v2/{project_id}/desktops/{desktop_id} 查询桌面详情 √ √ workspace:desktops:list GET /v2/{project_id}/desktops 查询桌面列表 √ √ workspace:desktops:listDetail GET /v2/{project_id}/desktops/detail 查询桌面详情列表 √ √ workspace:desktops:batchDelete POST /v2/{project_id}/desktops/batch-delete 批量删除桌面 √ √ workspace:desktops:operate POST /v2/{project_id}/desktops/action 操作桌面(开关机、重启、休眠) √ √ workspace:desktops:reboot POST /v2/{project_id}/desktops/reboot 重启桌面 √ √ workspace:desktops:start POST /v2/{project_id}/desktops/start 启动桌面 √ √ workspace:desktops:stop POST /v2/{project_id}/desktops/stop 关闭桌面 √ √ workspace:desktops:getLastDeleteTime GET /v2/{project_id}/desktops/last-desktop-delete-time 查询租户最后一台计算机的删除时间 √ x workspace:desktops:resize POST /v2/{project_id}/desktops/resize 变更规格 √ √ workspace:desktops:rebuild POST /v2/{project_id}/desktops/rebuild 重建桌面 √ √ workspace:desktops:getActions GET /v2/{project_id}/desktops/{desktop_id}/actions 查询桌面开关机信息 √ √ workspace:desktops:getMonitor GET /v2/{project_id}/desktop-monitor/{desktop_id} 查询桌面监控信息 √ √ workspace:desktops:createConsole GET /v2/{project_id}/desktops/{desktop_id}/remote-consoles 获取远程登录控制台地址 √ √ workspace:desktops:updateSids PUT /v2/{project_id}/desktops/sids 更新桌面SID √ √ workspace:desktops:rejoinDomain POST /v2/{project_id}/desktops/{desktop_id}/rejoin-domain 重新加入AD域 √ √ workspace:desktops:createImage POST /v2/{project_id}/desktops/desktop-to-image 桌面转镜像 √ x workspace:desktops:export GET /v2/{project_id}/desktops/export 导出桌面列表 √ √ workspace:desktops:detach POST /v2/{project_id}/desktops/detach 解绑用户 √ √ workspace:desktops:attach POST /v2/{project_id}/desktops/attach 分配用户 √ √ workspace:desktops:getSysprepVersion GET /v2/{project_id}/desktops/{desktop_id}/sysprep 查询Sysprep版本信息 √ x workspace:desktops:getConnectStatus GET /v2/{project_id}/connections/status 查询桌面登录状态统计数据 √ x workspace:agencies:create POST /v2/{project_id}/agencies 创建委托 √ x workspace:agencies:get GET /v2/{project_id}/agencies 查询委托 √ x workspace:desktops:verifyDesktopName POST /v2/{project_id}/verification/desktop-name 校验桌面名称 √ x workspace:desktops:getAdStatus GET /v2/{project_id}/ad/status 查询AD网络状态 √ x workspace:desktopPools:create POST /v2/{project_id}/desktop-pools 创建桌面池 √ √ workspace:desktopPools:update PUT /v2/{project_id}/desktop-pools/{pool_id} 修改桌面池属性 √ √ workspace:desktopPools:delete DELETE /v2/{project_id}/desktop-pools/{pool_id} 删除桌面池 √ √ workspace:desktopPools:get GET /v2/{project_id}/desktop-pools/{pool_id} 查询桌面池详情 √ √ workspace:desktopPools:list GET /v2/{project_id}/desktop-pools 查询桌面池列表 √ √ workspace:desktopPools:expand POST /v2/{project_id}/desktop-pools/{pool_id}/expand 扩容桌面池 √ √ workspace:desktopPools:resize POST /v2/{project_id}/desktop-pools/{pool_id}/resize 桌面池变更规格 √ √ workspace:desktopPools:rebuild POST /v2/{project_id}/desktop-pools/{pool_id}/rebuild 桌面池重建系统盘 √ √ workspace:desktopPools:batchAddVolumes POST /v2/{project_id}/desktop-pools/{pool_id}/volumes/batch-add 桌面池批量添加磁盘 √ √ workspace:desktopPools:batchDeleteVolumes POST /v2/{project_id}/desktop-pools/{pool_id}/volumes/batch-delete 桌面池批量删除磁盘 √ √ workspace:desktopPools:batchExpandVolumes POST /v2/{project_id}/desktop-pools/{pool_id}/volumes/batch-expand 桌面池批量扩容磁盘 √ √ workspace:desktopPools:operate POST /v2/{project_id}/desktop-pools/{pool_id}/action 操作桌面池 √ √ workspace:desktopPools:authorizeUsers POST /v2/{project_id}/desktop-pools/{pool_id}/users 桌面池授权用户、用户组 √ √ workspace:desktopPools:listUsers GET /v2/{project_id}/desktop-pools/{pool_id}/users 查询桌面池授权的用户、用户组 √ √ workspace:desktops:tag POST /v2/{project_id}/desktops/{desktop_id}/tags 创建桌面标签 √ x workspace:desktops:listTags GET /v2/{project_id}/desktops/{desktop_id}/tags 查询桌面标签 √ x workspace:desktops:untag DELETE /v2/{project_id}/desktops/{desktop_id}/tags/{key} 删除桌面标签 √ x workspace:desktops:listProjectTags GET /v2/{project_id}/desktops/tags 查询项目标签 √ x workspace:desktops:operateTags POST /v2/{project_id}/desktops/{desktop_id}/tags/action 批量添加删除标签 √ x workspace:desktops:listByTags POST /v2/{project_id}/desktops/resource_instances/action 使用标签过滤桌面 √ x workspace:jobs:list POST /v2/{project_id}/workspace-jobs 查询任务列表 √ x workspace:jobs:get GET /v2/{project_id}/workspace-jobs/{job_id} 查询任务详情 √ x workspace:jobs:listSubJobs GET /v2/{project_id}/workspace-sub-jobs 查询子任务列表 √ x workspace:jobs:retry POST /v2/{project_id}/workspace-jobs/{job_id}/actions 重试任务 √ x workspace:jobs:deleteSubJobRecords POST /v2/{project_id}/workspace-sub-jobs/batch-delete 删除子任务记录 √ x workspace:networks:createNat POST /v2/{project_id}/internet 开通NAT网关上网功能 √ √ workspace:networks:listNats GET /v2/{project_id}/internet 查询NAT网关上网功能 √ √ workspace:networks:createEips POST /v2/{project_id}/eips 创建EIP √ √ workspace:networks:listEips GET /v2/{project_id}/eips 查询EIP列表 √ √ workspace:networks:bindEips POST /v2/{project_id}/eips/binding 绑定EIP √ √ workspace:networks:unbindEips POST /v2/{project_id}/eips/unbinding 解绑EIP √ √ workspace:networks:getEipQuota GET /v2/{project_id}/eips/quotas 查询EIP配额 √ √ workspace:networks:listVpcs GET /v2/{project_id}/vpcs 查询查询vpc √ √ workspace:networks:listSubnets GET /v2/{project_id}/subnets 查询子网列表 √ √ workspace:networks:listSecurityGroups GET /v2/{project_id}/security-groups 查询安全组列表 √ √ workspace:networks:getAvailableIp GET /v2/{project_id}/subnets/{subnet_id}/available-ip 根据子网id查询该子网下可用的ip √ √ workspace:orders:create POST /v2/{project_id}/periodic/subscribe/order 包周期下单 √ √ workspace:orders:change POST /v2/{project_id}/periodic/{desktop_id}/change/order 创建变更订单 √ √ workspace:renderDesktops:create POST /v2/{project_id}/render-desktops 创建渲染桌面 √ √ workspace:renderDesktops:delete DELETE /v2/{project_id}/render-desktops 删除渲染桌面 √ √ workspace:renderDesktops:list GET /v2/{project_id}/render-desktops 查询渲染桌面列表 √ √ workspace:renderDesktops:action POST /v2/{project_id}/render-desktops/action 操作渲染桌面 √ √ workspace:renderDesktops:createConsole GET /v2/{project_id}/render-desktops/{desktop_id}/remote-consoles 获取远程登录控制台地址 √ √ workspace:renderDesktops:resize PUT /v2/{project_id}/render-desktops/resize 变更渲染桌面规格 √ √ workspace:scheduledTasks:create POST /v2/{project_id}/scheduled-tasks 创建定时任务 √ x workspace:scheduledTasks:list GET /v2/{project_id}/scheduled-tasks 查询定时任务列表 √ x workspace:scheduledTasks:update PUT /v2/{project_id}/scheduled-tasks/{task_id} 更新定时任务 √ x workspace:scheduledTasks:delete DELETE /v2/{project_id}/scheduled-tasks/{task_id} 删除定时任务 √ x workspace:scheduledTasks:get GET /v2/{project_id}/scheduled-tasks/{task_id} 查询定时任务详情 √ x workspace:scheduledTasks:getFuture POST /v2/{project_id}/scheduled-tasks/future-executions 查询定时任务未来执行时间 √ x workspace:scheduledTasks:batchDelete POST /v2/{project_id}/scheduled-tasks/batch-delete 批量删除定时任务 √ x workspace:scheduledTasks:listRecords GET /v2/{project_id}/scheduled-tasks/{task_id}/records 查询定时任务执行记录 √ x workspace:scheduledTasks:getRecord GET /v2/{project_id}/scheduled-tasks/{task_id}/records/{record_id} 查询定时任务执行记录详情 √ x workspace:scheduledTasks:exportRecords POST /v2/{project_id}/scheduled-tasks/{task_id}/records/export 导出定时任务记录及执行详情 √ x workspace:statistics:getRunState GET /v2/{project_id}/desktops/statistics/run-state 运行状态统计 √ x workspace:statistics:getLoginState GET /v2/{project_id}/desktops/statistics/login-state 登录状态统计 √ x workspace:statistics:getUnused GET /v2/{project_id}/desktops/statistics/unused 查询在指定时间段未使用的桌面 √ x workspace:statistics:getUsed POST /v2/{project_id}/desktops/statistics/used 查询使用桌面的时长 √ x workspace:bindingPolicies:getConfig GET /v2/{project_id}/terminals/binding-desktops/config 查询终端与桌面绑定的开关配置信息 √ x workspace:bindingPolicies:createConfig POST /v2/{project_id}/terminals/binding-desktops/config 设置终端与桌面绑定的开关配置 √ x workspace:bindingPolicies:get GET /v2/{project_id}/terminals/binding-desktops 查询终端与桌面绑定配置列表 √ x workspace:bindingPolicies:add POST /v2/{project_id}/terminals/binding-desktops 增加终端与桌面绑定配置 √ x workspace:bindingPolicies:update PUT /v2/{project_id}/terminals/binding-desktops 修改终端与桌面绑定配置 √ x workspace:bindingPolicies:delete POST /v2/{project_id}/terminals/binding-desktops/batch-delete 删除终端与桌面绑定配置 √ x workspace:bindingPolicies:getTemplate GET /v2/{project_id}/terminals/binding-desktops/template 下载终端与桌面绑定模板 √ x workspace:bindingPolicies:import POST /v2/{project_id}/terminals/binding-desktops/template/import 批量导入终端与桌面绑定 √ x workspace:bindingPolicies:export GET /v2/{project_id}/terminals/binding-desktops/template/export 导出终端与桌面绑定配置excel √ x workspace:volumes:add POST /v2/{project_id}/desktops/{desktop_id}/volumes 增加桌面磁盘 √ √ workspace:volumes:delete POST /v2/{project_id}/desktops/{desktop_id}/volumes/batch-delete 删除桌面数据盘 √ √ workspace:volumes:batchAdd POST /v2/{project_id}/desktops/volumes 多个桌面增加桌面磁盘 √ √ workspace:volumes:batchAdd POST /v2/{project_id}/volumes 增加桌面磁盘 √ √ workspace:volumes:expand POST /v2/{project_id}/desktops/{desktop_id}/volumes/{volume_id}/expand 扩容磁盘 √ √ workspace:volumes:batchExpand POST /v2/{project_id}/volumes/expand 扩容桌面磁盘 √ √ workspace:volumes:listDssPoolsDetail GET /v2/{project_id}/dss-pools/detail 获取专属分布式存储池详情列表 √ √ workspace:wdh:listDesktops GET /v2/{project_id}/hosts/{host_id}/servers 查询云办公主机包含桌面信息 √ √ workspace:wdh:getType GET /v2/{project_id}/hosts/types 查询云办公主机类型 √ √ workspace:wdh:create POST /v2/{project_id}/hosts 购买云办公主机 √ √ workspace:wdh:get GET /v2/{project_id}/hosts 查询云办公主机列表 √ √ workspace:wdh:update PUT /v2/{project_id}/hosts 更新云办公主机信息 √ √ workspace:tenants:get GET /v2/{project_id}/workspaces 查询云办公服务详情 √ x workspace:tenants:open POST /v2/{project_id}/workspaces 开通云办公服务 √ x workspace:tenants:update PUT /v2/{project_id}/workspaces 修改云办公服务属性 √ x workspace:tenants:delete DELETE /v2/{project_id}/workspaces 注销云办公服务 √ x workspace:tenants:checkEnterpriseIds POST /v2/{project_id}/workspaces/enterprise-ids/check 检查企业ID是否已被使用 √ x workspace:tenants:updateEnterpriseId PUT /v2/{project_id}/workspaces/enterprise-id 修改企业ID √ x workspace:tenants:getRealms GET /v2/{project_id}/workspaces/realms 查询租户域信息 √ x workspace:tenants:getLockStatus GET /v2/{project_id}/workspaces/lock-status 查询云办公服务是否被锁定 √ x workspace:tenants:unlock PUT /v2/{project_id}/workspaces/lock-status 解除云办公服务锁定状态 √ x workspace:tenants:getRoles GET /v2/{project_id}/tenants/roles 查询租户角色 √ x workspace:natMappings:getConfig GET /v2/{project_id}/nat-mapping-configs 查询租户的NAT映射配置项 √ x workspace:natMappings:updateConfig PUT /v2/{project_id}/nat-mapping-configs 修改租户的NAT映射配置项 √ x workspace:sites:get GET /v2/{project_id}/sites 查询站点信息 √ x workspace:sites:add POST /v2/{project_id}/sites 新增站点 √ x workspace:sites:delete DELETE /v2/{project_id}/sites/{site_id} 删除站点 √ x workspace:sites:updateAccessMode PUT /v2/{project_id}/sites/{site_id}/access-mode 修改站点接入方式 √ x workspace:sites:updateSubnets PUT /v2/{project_id}/sites/{site_id}/subnet-ids 修改站点业务子网 √ x workspace:privacystatements:sign POST /v2/{project_id}/privacystatement 签署隐私声明 √ x workspace:quotas:get GET /v2/{project_id}/quotas 查询租户配额 √ x workspace:authConfigs:get GET /v2/{project_id}/auth-config/method-config 查询认证登录方式配置信息 √ x workspace:authConfigs:update PUT /v2/{project_id}/auth-config/method-config 更新认证策略配置信息 √ x workspace:assistAuthConfigs:get GET /v2/{project_id}/assist-auth-config/method-config 查询辅助认证的配置信息 √ x workspace:assistAuthConfigs:update PUT /v2/{project_id}/assist-auth-config/method-config 更新辅助认证配置 √ x workspace:accessPolicies:create POST /v2/{project_id}/access-policy 创建接入策略 √ x workspace:accessPolicies:delete DELETE /v2/{project_id}/access-policy 删除指定接入策略 √ x workspace:accessPolicies:get GET /v2/{project_id}/access-policy 查询接入策略 √ x workspace:accessPolicies:getTarget GET /v2/{project_id}/access-policy/{access_policy_id}/objects 查询指定接入策略的应用对象 √ x workspace:accessPolicies:updateTarget PUT /v2/{project_id}/access-policy/{access_policy_id}/objects 更新指定接入策略的应用对象 √ x workspace:availabilityZones:list GET /v2/{project_id}/availability-zones 查询支持的可用分区列表 √ x workspace:availabilityZones:getSummary GET /v2/{project_id}/availability-zones/summary 查询可用分区列表概要 √ x workspace:availabilityZones:get GET /v2/{project_id}/availability-zones/detail 查询可用分区详情 √ x workspace:connections:securityList GET /v2/{project_id}/connections/desktops 查询连接信息 √ x workspace:connections:securityExport GET /v2/{project_id}/connections/desktops/export 导出连接记录 √ x workspace:connections:securityList GET /v2/{project_id}/desktops/connections 查询连接信息 √ x workspace:connections:securityExport GET /v2/{project_id}/desktops/connections/export 导出连接记录 √ x workspace:policyGroups:create POST /v2/{project_id}/policy-groups 新增策略组 √ x workspace:policyGroups:delete DELETE /v2/{project_id}/policy-groups/{policy_group_id} 删除策略组 √ x workspace:policyGroups:update PUT /v2/{project_id}/policy-groups/{policy_group_id} 修改策略组 √ x workspace:policyGroups:list GET /v2/{project_id}/policy-groups 查询策略组列表 √ x workspace:policyGroups:get GET /v2/{project_id}/policy-groups/{policy_group_id} 查询策略组 √ x workspace:policyGroups:export POST /v2/{project_id}/policy-groups/export 导出策略组 √ x workspace:policyGroups:import POST /v2/{project_id}/policy-groups/import 导入策略组 √ x workspace:policyGroups:listPolicies GET /v2/{project_id}/policy-groups/{policy_group_id}/policies 查询策略组中的策略项 √ x workspace:policyGroups:updatePolicies PUT /v2/{project_id}/policy-groups/{policy_group_id}/policies 修改策略组中的策略项 √ x workspace:policyGroups:listTargets GET /v2/{project_id}/policy-groups/{policy_group_id}/targets 查询策略组应用对象 √ x workspace:policyGroups:updateTargets PUT /v2/{project_id}/policy-groups/{policy_group_id}/targets 修改策略组应用对象 √ x workspace:policyGroups:listDetail GET /v2/{project_id}/policy-groups/detail 查询策略组详情列表 √ x workspace:policyGroups:getQuotas GET /v2/{project_id}/policy-groups/quotas 查询策略组上限数量 √ x workspace:policyGroups:getMaxPriority GET /v2/{project_id}/policy-groups/max-priority 查询策略组最大优先级 √ x workspace:policyGroups:getOriginalPolicies GET /v2/{project_id}/policy-groups/original-policies 查询初始策略项 √ x workspace:policyGroups:createTemplate POST /v2/{project_id}/policy-groups/policy-template 创建策略模板 √ x workspace:policyGroups:updateTemplate PUT /v2/{project_id}/policy-groups/policy-template/{policy_group_id} 更新策略模板 √ x workspace:userGroups:create POST /v2/{project_id}/groups 创建用户组 √ x workspace:userGroups:list GET /v2/{project_id}/groups 查询用户组列表 √ x workspace:userGroups:update PUT /v2/{project_id}/groups/{group_id} 修改用户组信息 √ x workspace:userGroups:delete DELETE /v2/{project_id}/groups/{group_id} 删除桌面用户组 √ x workspace:userGroups:batchDelete POST /v2/{project_id}/groups/batch-delete 批量删除用户组 √ x workspace:userGroups:operate POST /v2/{project_id}/groups/{group_id}/actions 操作用户组 √ x workspace:userGroups:getUsers GET /v2/{project_id}/groups/{group_id}/users 查询用户组中的用户 √ x workspace:ou:create POST /v2/{project_id}/ous 新增OU信息 √ x workspace:ou:delete DELETE /v2/{project_id}/ous/{ou_id} 删除OU信息 √ x workspace:ou:update PUT /v2/{project_id}/ous/{ou_id} 更新OU信息 √ x workspace:ou:get GET /v2/{project_id}/ous 查询OU信息 √ x workspace:users:create POST /v2/{project_id}/users 创建用户 √ x workspace:users:delete DELETE /v2/{project_id}/users/{user_id} 删除指定用户 √ x workspace:users:update PUT /v2/{project_id}/users/{user_id} 修改用户信息 √ x workspace:users:list GET /v2/{project_id}/users 查询用户列表 √ x workspace:users:get GET /v2/{project_id}/users/{user_id} 查询用户详情信息 √ x workspace:users:operate POST /v2/{project_id}/users/{user_id}/actions 操作用户(锁定、解锁和重置密码) √ x workspace:users:resetPassword POST /v2/{project_id}/users/password 重置用户密码 √ x workspace:users:resendEmail POST /v2/{project_id}/users/{user_id}/resend-email 重新发送邮件 √ x workspace:users:batchDelete POST /v2/{project_id}/users/batch-delete 批量删除用户 √ x workspace:users:uploadTemplate POST /v2/{project_id}/users/template-upload 上传用户模板文件 √ x workspace:users:getTemplate GET /v2/{project_id}/users/desktop-users/template 用户模板下载 √ x workspace:users:importUser POST /v2/{project_id}/users/desktop-users/action/import 导入用户列表 √ x workspace:users:checkExist POST /v2/{project_id}/users/exist 校验用户是否存在 √ x workspace:users:listOtps GET /v2/{project_id}/users/{user_id}/otp-devices 查询OTP设备 √ x workspace:users:deleteOtps DELETE /v2/{project_id}/users/{user_id}/otp-devices 解绑OTP设备 √ x workspace:users:getImportTemplate GET /v2/{project_id}/users/template/download 创建用户模板下载 √ x workspace:users:import POST /v2/{project_id}/users/import 导入用户 √ x workspace:users:export POST /v2/{project_id}/users/export 导出用户 √ x workspace:users:batchCreate POST /v2/{project_id}/users/batch-create 批量创建用户 √ x workspace:users:randomPassword GET /v2/{project_id}/users/{user_id}/random-password 给用户重置随机密码 √ x workspace:images:list GET /v2/{project_id}/images 查询产品镜像列表 √ √ workspace:appcenter:listApps GET /v1/{project_id}/app-center/apps 按照名称分页查询应用 √ x workspace:appcenter:createApp POST /v1/{project_id}/app-center/apps 上传应用 √ x workspace:appcenter:updateApp PATCH /v1/{project_id}/app-center/apps/{app_id} 修改应用 √ x workspace:appcenter:deleteApp DELETE /v1/{project_id}/app-center/apps/{app_id} 删除应用 √ x workspace:appcenter:installApp POST /v1/{project_id}/app-center/apps/{app_id}/actions/auto-install 自动安装应用 √ x workspace:appcenter:listAppAuthorizations GET /v1/{project_id}/app-center/apps/{app_id}/authorizations 查询应用授权信息 √ x workspace:appcenter:updateAppAuthorizations POST /v1/{project_id}/app-center/apps/{app_id}/actions/assign-authorizations 设置应用授权 √ x workspace:appcenter:batchDeleteApps POST /v1/{project_id}/app-center/apps/actions/batch-delete 批量删除应用 √ x workspace:appcenter:batchDisableApps POST /v1/{project_id}/app-center/apps/actions/batch-disable 批量设置应用不可见 √ x workspace:appcenter:batchEnableApps POST /v1/{project_id}/app-center/apps/actions/batch-enable 批量设置应用可见 √ x workspace:appcenter:batchUpdateAppAuthorizations POST /v1/{project_id}/app-center/apps/actions/batch-assign-authorization 批量设置应用授权 √ x workspace:appcenter:batchInstallApps POST /v1/{project_id}/app-center/apps/actions/batch-auto-install 批量自动安装安装应用 √ x workspace:appcenter:listAppCatalogs GET /v1/{project_id}/app-center/app-catalogs 查询应用分类信息 √ x workspace:appcenter:listJobs GET /v1/{project_id}/app-center/jobs 查询应用安装job信息 √ x workspace:appcenter:batchDeleteJobs POST /v1/{project_id}/app-center/jobs/actions/batch-delete 批量删除job √ x workspace:appcenter:retryJobs POST /v1/{project_id}/app-center/jobs/actions/retry 重试失败job √ x workspace:appcenter:createAppRule POST /v1/{project_id}/app-center/app-rules 创建应用规则 √ x workspace:appcenter:listAppRule GET /v1/{project_id}/app-center/app-rules 查询应用规则 √ x workspace:appcenter:updateAppRule PATCH /v1/{project_id}/app-center/app-rules/{rule_id} 修改应用规则 √ x workspace:appcenter:deleteAppRule DELETE /v1/{project_id}/app-center/app-rules/{rule_id} 删除应用规则 √ x workspace:appcenter:batchDeleteAppRules POST /v1/{project_id}/app-center/app-rules/batch-delete 批量删除应用规则 √ x workspace:appcenter:enableRuleRestriction POST /v1/{project_id}/app-center/app-rules/actions/enable-rule-restriction 启用规则管控 √ x workspace:appcenter:disableRuleRestriction POST /v1/{project_id}/app-center/app-rules/actions/disable-rule-restriction 禁用规则管控 √ x workspace:appcenter:addRestrictedRule POST /v1/{project_id}/app-center/app-restricted-rules 增加管控规则 √ x workspace:appcenter:listRestrictedRule GET /v1/{project_id}/app-center/app-restricted-rules 查询管控规则列表 √ x workspace:appcenter:deleteRestrictedRule POST /v1/{project_id}/app-center/app-restricted-rules/actions/batch-delete 批量删除管控规则列表 √ x workspace:appcenter:updateTenantProfile PATCH /v1/{project_id}/app-center/profiles 启禁用租户功能 √ x workspace:appcenter:listTenantProfiles GET /v1/{project_id}/app-center/profiles 查询租户功能状态 √ x workspace:appcenter:createBucketCredential POST /v1/{project_id}/app-center/buckets/actions/create-credential 生成OBS桶凭证信息信息 √ x workspace:appcenter:createAndAuthorizeBucket POST /v1/{project_id}/app-center/buckets 添加并授权默认OBS桶 √ x 父主题: 权限管理
  • 责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的 云安全 挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的IaaS、PaaS和SaaS类云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。华为云租户的安全责任在于对使用的IaaS、PaaS和SaaS类云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、 虚拟主机 和访客虚拟机的操作系统,虚拟防火墙、API网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型 父主题: 安全
  • 使用自带许可证(BYOL) 什么是BYOL BYOL(Bring Your Own License)是指用户自带许可证,即用户使用已有操作系统的授权许可,无需重新申请新的许可证。 使用BYOL 对于自带许可证的用户,需自行管理云桌面许可证。如果您已有相应操作系统的授权许可证,可直接使用已有许可证。 支持使用自带许可证(BYOL)的操作系统有: Windows 相关操作场景 系统不支持动态修改许可证类型。云桌面可以在如下场景使用自带许可证(BYOL): 创建云桌面 云桌面创建完成后,用户不能动态修改该云桌面的许可证类型。如需修改,请重装或切换云桌面的操作系统。 重装云桌面的操作系统 重装操作系统时,用户可以选择该云桌面的许可证类型。 切换云桌面的操作系统 切换操作系统时,用户可以选择该云桌面的许可证类型。 Windows桌面的License说明
  • 主机安全 主机安全服务(Host Security Service,HSS)是提升服务器整体安全性的服务,为用户提供资产管理、漏洞管理、入侵检测、基线检查等功能,降低服务器被入侵的风险。 在云桌面中安装Agent后,云桌面受到HSS云端防护中心全方位的安全保障,在安全控制台可视化界面上,您可以统一查看并管理同一区域内所有主机的防护状态和主机安全风险。 图1 HSS功能原理 主机安全服务的组件功能及工作流程说明如下: 安全控制台: 可视化的管理平台,便于您集中下发配置信息,查看在同一区域内主机的防护状态和检测结果。 HSS云端防护中心: 接收您在控制台下发的配置信息和检测任务,并转发给安装在服务器上的Agent。 接收Agent上报的主机信息,分析主机中存在的安全风险和异常信息,将分析后的信息以检测报告的形式呈现在控制台界面。 HSS客户端: 接收HSS云端防护中心转发的检测任务。 按检测任务要求扫描云桌面,并将事件扫描信息上报给HSS云端防护中心。 您在使用主机安全服务前,需要先在云服务器上安装客户端。更多信息,请参考主机安全。 父主题: 数据保护技术
  • Hypervisor安全 什么是Hypervisor Hypervisor能实现同一物理机上不同虚拟机之间的资源隔离,避免虚拟机之间的数据窃取或恶意攻击,保证虚拟机的资源使用不受周边虚拟机的影响。用户使用虚拟机时,仅能访问属于自己的虚拟机的资源(如硬件、软件和数据),不能访问其他虚拟机的资源,保证虚拟机隔离安全。 CPU隔离 x86架构为了保护指令的运行,提供了指令的4个不同特权级别,术语称为Ring,优先级从高到低依次为: Ring 0:被用于运行操作系统内核。 Ring 1:用于操作系统服务。 Ring 2:用于特权代码(具有I/O访问权限的用户程序)。 Ring 3:用于应用程序。 各个级别对可以运行的指令进行限制: Hypervisor运行在Ring0。 虚拟机操作系统运行在Ring 1,有效地防止了虚拟机Guest OS直接执行所有特权指令。 应用程序运行在Ring 3上,保证了操作系统与应用程序之间的隔离。 CPU硬件辅助虚拟化的引入进一步实现了Hypervisor和虚拟机操作系统运行模式的深度隔离。 内存隔离 Hypervisor通过内存虚拟化技术来实现不同虚拟机之间的内存隔离。内存虚拟化技术在传统OS两层地址映射(“虚拟地址”到“机器地址”)的基础上,引入三层地址映射:虚拟机负责将“Guest虚拟地址”映射为“Guest物理地址”,然后Hypervisor负责将“虚拟机物理地址”映射成“机器地址”,再交由物理处理器来执行,保证了虚拟机无法直接接触实际的机器地址,只能访问Hypervisor分配给它的物理内存。 I/O隔离 Hypervisor采用分离设备模型实现I/O的虚拟化。前端负责将虚拟机的I/O请求传递到Hypervisor中的后端,后端解析I/O请求并提交给相应的设备完成I/O操作。Hypervisor保证虚拟机只能访问分配给它的I/O资源。 父主题: 数据保护技术
  • 入门实践 当您配置入侵防御和访问控制策略后,可以根据业务场景使用CFW提供的一系列常用实践。 表1 常用实践 实践 描述 仅放行云内资源对指定 域名 的访问流量 介绍如何快速放行云内资源对某个域名的访问流量,适用于业务仅需要访问指定域名时的场景。 使用CFW防御网络攻击 介绍如何使用CFW防护各类网络攻击,适用为云上业务拦截网络攻击的场景。 VPC间边界防火墙配置 介绍VPC边界防火墙的配置流程,适用于对VPC间流量防护有需求的场景。 等保二级解决方案 该解决方案能帮您快速在华为云上搭建等保二级合规安全解决方案,帮助客户快速、低成本完成安全整改,轻松满足等保二级合规要求。 等保合规安全解决方案 该解决方案介绍,华为云依托自身安全能力与安全合规生态,为客户提供一站式的安全解决方案,帮助客户快速、低成本完成安全整改,轻松满足等保合规要求。
  • 按需计费开通服务 登录IVS服务控制台。 选择需要使用的服务,在操作列单击“开通服务”,此时的计费方式采用按需计费。 图1 开通服务 服务开通成功后,开通状态将显示为“已开通”。 IVS服务开通后,可在控制台进行关闭。开通服务时,计费规则默认为“按需计费”。只有调用成功才会计费,其中返回的200状态码表示调用成功,调用失败不计费,详细的计费价格及规则请参见计费说明。 如未开通服务,直接调用IVS API会提示IVS.0015报错。
  • 购买套餐包开通服务 登录IVS服务控制台。 在左侧导航栏中选择“购买套餐包”,此时的计费方式采用套餐包计费,套餐包额度用完后自动转为按需计费。 图2 购买套餐包 服务开通成功后,开通状态将显示为“已开通”。 购买套餐包后只有调用成功才会计算调用次数,其中返回的200状态码表示调用成功,调用失败不计算次数。详细的计费价格及规则请参见计费说明。 套餐包额度使用完后,会转为按需计费。 如未开通服务,直接调用IVS API会提示IVS.0015报错。
  • 应用场景简介 IVS支持通过企业项目管理(EPS)对不同用户组和用户的资源使用,进行分账。企业可以根据组织架构规划不同的企业项目,并为每个企业项目设置拥有不同权限的用户组和用户,多个企业项目之间相互独立,资源分开结算。 企业账号可申请开通企业项目。账号需要进行企业实名认证。如果企业账号注册成为华为云合作伙伴,将无法进入企业项目管理页面。 开通企业项目后,企业项目内的用户在调用IVS API时,只有在请求Header参数中传入Enterprise-Project-Id(企业项目ID)后,才支持按不同企业项目进行财务统计。传参方式详见API文档。 该功能仅支持开通在华北-北京四区域的API,不同API的部署情况请参见终端节点。 图1 企业项目管理示意图 父主题: 企业项目管理
  • 操作步骤 创建用户组并授权 使用主账号登录IAM服务控制台。 左侧导航窗格中,选择“用户组”页签,单击右上方的“+创建用户组”。 在“创建用户组”界面,输入“用户组名称”,例如“开发人员组”、“测试人员组”。 在用户组列表中,单击新建用户组右侧的“授权”。 选择权限的作用服务。此处选择“ 人证核身 服务(IVS)”,并为该用户组设置所需的权限。 单击“下一步”,设置用户组的最小授权范围。单击“确定”,完成用户组授权。 所有资源:不设置最小授权范围,授权后,用户根据权限使用账号中所有资源。 指定区域项目资源:授权后,用户根据权限使用已选区域项目中的资源。 创建IAM用户并加入用户组 在IAM控制台中创建用户。单击右上方的“+创建用户”,配置用户基本信息。 单击“下一步”,将用户加入至用户组。 单击“创建用户”,完成IAM用户创建。 用户登录并验证权限 新创建的用户登录控制台,切换至授权区域,验证权限: 假设当前权限仅包含IVS ReadOnlyAccess。 进入IVS控制台界面,单击“开通服务”,如果无法开通,提示权限不足,表示“IVS ReadOnlyAccess”已生效。
  • IVS权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 IVS部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华北-北京四)对应的项目(cn-north-4)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问IVS时,需要先切换至授权区域。 如表1所示,包括了IVS的所有系统角色。 表1 IVS系统策略 策略名称 描述 策略类型 依赖关系 IVS FullAccess 所有权限 系统策略 无 IVS ReadOnlyAccess 只读访问权限 系统策略 无 表2列出了IVS常用操作与系统策略的授权关系,您可以参照该表选择合适的系统策略。 表2 IVS操作与系统策略关系 Action Action说明 IVS FullAccess IVS ReadOnlyAccess ivs:standard:subscribe 订阅人证核身标准版(三要素) √ × ivs:standard:unsubscribe 取消人证核身标准版(三要素) √ × ivs:standard:getSubscribeUserList 查询订阅人证核身标准版(三要素)的用户列表 √ √ ivs:standard:subscribeAllUsers 为子用户订阅人证核身标准版(三要素) √ × ivs:standard:unsubscribeAllUsers 为子用户取消订阅人证核身标准版(三要素) √ × ivs:idCardExtention:subscribe 订阅人证核身证件版(二要素) √ × ivs:idCardExtention:unsubscribe 取消订阅人证核身证件版(二要素) √ × ivs:idCardExtention:getSubscribeUserList 查询订阅人证核身证件版(二要素)的用户列表 √ √ ivs:idCardExtention:subscribeAllUsers 为子用户订阅人证核身证件版(二要素) √ × ivs:idCardExtention:unsubscribeAllUsers 为子用户取消订阅人证核身证件版(二要素) √ ×
  • IVS自定义策略 如果系统预置的权限,不满足您的授权要求,可以创建自定义策略。自定义策略中可以添加的授权项(Action)请参见权限管理。 目前华为云支持以下两种方式创建自定义策略: 可视化视图创建自定义策略:无需了解策略语法,按可视化视图导航栏选择云服务、操作、资源、条件等策略内容,可自动生成策略。 JSON视图创建自定义策略:可以在选择策略模板后,根据具体需求编辑策略内容;也可以直接在编辑框内编写JSON格式的策略内容。 具体创建步骤请参见:创建自定义策略。 父主题: 权限管理
  • 约束与限制 只支持“华北-北京四”区域。 只支持中国大陆身份证的识别。 支持港澳台居住证核验,证件信息需文本输入 只支持JPG格式,图片中人像需无遮挡。 图像数据,base64编码,要求base64编码后大小不超过4MB。 图像各边的像素大小在300到8000px之间。 图像中身份证区域有效占比超过15%,保证整张身份证内容及其边缘包含在图像内。 支持图像中身份证要求水平放置。 暂无安卓和IOS系统的SDK。
  • 费用账单 费用账单可以在费用中心进行查看、导出。 图1 明细账单 账单数据是唯一标准的计费数据,只对用户调用中状态码满足范围内的调用,进行收费。只有调用成功才会计算调用次数,其中返回的200状态码表示调用成功,调用失败不计费。 账单数据与IVS控制台API调用量,会因时间差原因,导致两方数据有差异。账单数据通常都是有滞后性的,需要在某个时间节点之后开始批量计算费用。而调用量的上报跟用户的实际调用也有滞后,一般数据统计可能延迟10-20分钟。整体上,在完整月度账单出来后,或者查询历史上某个特定时间段账单最为精准。例如,查询上月的账单显示的调用量和统计调用量。
  • 什么是人证核身 人证核身服务(Identity Verification Solution,简称IVS),是指通过用户的身份证信息、人脸图片,与权威数据库进行比对,进而实现身份验证。 当前,人证核身提供以下子功能: 标准版(三要素) 使用姓名、身份证号码、人脸图像三要素进行匹配核验。 证件版(二要素) 使用姓名、身份证号码二要素进行匹配核验。 图1 标准版(三要素)识别过程 图2 证件版(二要素)识别过程
  • 日志内容格式 SDK日志格式为:日志时间|线程号|日志级别|日志内容。示例如下: 2017-08-21 17:40:07 133|main|INFO |HttpClient cost 157 ms to apply http request2017-08-21 17:40:07 133|main|INFO |Received expected response code: true2017-08-21 17:40:07 133|main|INFO |expected code(s): [200, 204].2017-08-21 17:40:06 820|main|INFO |Storage|1|HTTP+XML|ObsClient||||2017-08-21 17:40:05|2017-08-21 17:40:06|||0|2017-08-21 17:40:07 136|main|INFO |Storage|1|HTTP+XML|setObjectAcl||||2017-08-21 17:40:06|2017-08-21 17:40:07|||0|2017-08-21 17:40:07 137|main|INFO |ObsClient [setObjectAcl] cost 312 ms
  • 日志级别 当系统出现问题需要定位且当前的日志无法满足要求时,可以通过修改日志的级别来获取更多的信息。其中TRACE日志信息最丰富,ERROR日志信息最少。可以通过LogConfigurator.setLogLevel设置日志级别。 具体说明见下表: 日志级别 说明 OBS Android SDK对应值 OFF 关闭级别,如果设置为这个级别,日志打印功能将被关闭。 LogConfigurator.OFF TRACE 跟踪级别,如果设置为这个级别,将打印所有日志信息。通常不建议使用。 LogConfigurator.TRACE DEBUG 调试级别,如果设置为这个级别,除了打印INFO级别以上的信息外,还将打印每次HTTP/HTTPS请求和响应的头信息,鉴权算法计算出的StringToSign信息等。 LogConfigurator.DEBUG INFO 信息级别,如果设置为这个级别,除了打印WARN级别以上的信息外,还将打印HTTP/HTTPS请求的耗时时间,ObsClient接口的耗时时间等。 LogConfigurator.INFO WARN 告警级别,如果设置为这个级别,除了打印ERROR级别以上的信息外,还将打印一些关键事件的信息,如重试请求超过最大次数等。 LogConfigurator.WARN ERROR 错误级别,如果设置为这个级别,仅打印发生异常时的错误信息。 LogConfigurator.ERROR
  • SDK公共响应头 调用ObsClient类的相关接口成功后,均会返回公共响应头类,即HeaderResponse类实例(或其子类实例),该类包含了HTTP/HTTPS的响应头信息。 处理公共响应头的示例代码如下: // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量AC CES S_KEY_ID和SECRET_ACCESS_KEY_ID。// 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.htmlString ak = System.getenv("ACCESS_KEY_ID");String sk = System.getenv("SECRET_ACCESS_KEY_ID");String endPoint = "https://your-endpoint";// 创建ObsClient实例ObsClient obsClient = new ObsClient(ak, sk, endPoint);HeaderResponse response = obsClient.createBucket("bucketname");//从公共响应头中获取request-idLog.i("CreateBucket", "\t" + response.getRequestId());obsClient.close(); 父主题: 异常处理
  • 删除桶标签 开发过程中,您有任何问题可以在github上提交issue,或者在华为云 对象存储服务 论坛中发帖求助。接口参考文档详细介绍了每个接口的参数和使用方法。 您可以通过ObsClient.deleteBucketTagging删除桶标签。以下代码展示了如何删除桶标签: // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。// 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.htmlString ak = System.getenv("ACCESS_KEY_ID");String sk = System.getenv("SECRET_ACCESS_KEY_ID");String endPoint = "https://your-endpoint";// 创建ObsClient实例ObsClient obsClient = new ObsClient(ak, sk, endPoint);obsClient.deleteBucketTagging("bucketname"); 父主题: 标签管理
  • 列举分段上传任务 您可以通过ObsClient.listMultipartUploads列举分段上传任务。列举分段上传任务可设置的参数如下: 参数 作用 OBS Android SDK对应方法 bucketName 桶名。 ListMultipartUploadsRequest.setBucketName prefix 限定返回的分段上传任务中的对象名必须带有prefix前缀。 ListMultipartUploadsRequest.setPrefix delimiter 用于对分段上传任务中的对象名进行分组的字符。对于对象名中包含delimiter的任务,其对象名(如果请求中指定了prefix,则此处的对象名需要去掉prefix)中从首字符至第一个delimiter之间的字符串将作为一个分组并作为commonPrefix返回。 ListMultipartUploadsRequest.setDelimiter maxUploads 列举分段上传任务的最大数目,取值范围为1~1000,当超出范围时,按照默认的1000进行处理。 ListMultipartUploadsRequest.setMaxUploads keyMarker 表示列举时返回指定的keyMarker之后的分段上传任务。 ListMultipartUploadsRequest.setKeyMarker uploadIdMarker 只有与keyMarker参数一起使用时才有意义,用于指定返回结果的起始位置,即列举时返回指定keyMarker的uploadIdMarker之后的分段上传任务。 ListMultipartUploadsRequest.setUploadIdMarker 简单列举分段上传任务 // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。// 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.htmlString ak = System.getenv("ACCESS_KEY_ID");String sk = System.getenv("SECRET_ACCESS_KEY_ID");String endPoint = "https://your-endpoint";String uploadId = "upload id from initiateMultipartUpload";// 创建ObsClient实例ObsClient obsClient = new ObsClient(ak, sk, endPoint);ListMultipartUploadsRequest request = new ListMultipartUploadsRequest("bucketname");MultipartUploadListing result = obsClient.listMultipartUploads(request);for(MultipartUpload upload : result.getMultipartTaskList()){ Log.i("ListMultipartUploads","\t" + upload.getUploadId()); Log.i("ListMultipartUploads","\t" + upload.getObjectKey()); Log.i("ListMultipartUploads","\t" + upload.getInitiatedDate());} 列举分段上传任务至多返回1000个任务信息,如果指定的桶包含的分段上传任务数量大于1000,则MultipartUploadListing.isTruncated为true表明本次没有返回全部结果,并可通过MultipartUploadListing.getNextKeyMarker和MultipartUploadListing.getNextUploadIdMarker获取下次列举的起点。 如果想获取指定桶包含的所有分段上传任务,可以采用分页列举的方式。 分页列举全部分段上传任务 // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。// 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.htmlString ak = System.getenv("ACCESS_KEY_ID");String sk = System.getenv("SECRET_ACCESS_KEY_ID");String endPoint = "https://your-endpoint";String uploadId = "upload id from initiateMultipartUpload";// 创建ObsClient实例ObsClient obsClient = new ObsClient(ak, sk, endPoint);ListMultipartUploadsRequest request = new ListMultipartUploadsRequest("bucketname");MultipartUploadListing result;do{ result = obsClient.listMultipartUploads(request); for(MultipartUpload upload : result.getMultipartTaskList()){ Log.i("ListMultipartUploads","\t" + upload.getUploadId()); Log.i("ListMultipartUploads","\t" + upload.getObjectKey()); Log.i("ListMultipartUploads","\t" + upload.getInitiatedDate()); } request.setKeyMarker(result.getNextKeyMarker()); request.setUploadIdMarker(result.getNextUploadIdMarker());}while(result.isTruncated());
  • 取消分段上传任务 分段上传任务可以被取消,当一个分段上传任务被取消后,就不能再使用其Upload ID做任何操作,已经上传段也会被OBS删除。 采用分段上传方式上传对象过程中或上传对象失败后会在桶内产生段,这些段会占用您的存储空间,您可以通过取消该分段上传任务来清理掉不需要的段,节约存储空间。 您可以通过ObsClient.abortMultipartUpload取消分段上传任务: // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。// 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.htmlString ak = System.getenv("ACCESS_KEY_ID");String sk = System.getenv("SECRET_ACCESS_KEY_ID");String endPoint = "https://your-endpoint";String uploadId = "upload id from initiateMultipartUpload";// 创建ObsClient实例ObsClient obsClient = new ObsClient(ak, sk, endPoint);AbortMultipartUploadRequest request = new AbortMultipartUploadRequest("bucketname", "objectname", uploadId);obsClient.abortMultipartUpload(request);
  • 列举已上传的段 您可使用ObsClient.listParts列举出某一分段上传任务所有已经上传成功的段。 该接口可设置的参数如下: 参数 作用 OBS Android SDK对应方法 bucketName 分段上传任务所属的桶名。 ListPartsRequest.setBucketName key 分段上传任务所属的对象名。 ListPartsRequest.setKey uploadId 分段上传任务全局唯一标识,从ObsClient.initiateMultipartUpload返回的结果获取。 ListPartsRequest.setUploadId maxParts 表示列举已上传的段返回结果最大段数目,即分页时每一页中段数目。 ListPartsRequest.setMaxParts partNumberMarker 表示待列出段的起始位置,只有Part Number大于该参数的段会被列出。 ListPartsRequest.setPartNumberMarker 简单列举 // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。// 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.htmlString ak = System.getenv("ACCESS_KEY_ID");String sk = System.getenv("SECRET_ACCESS_KEY_ID");String endPoint = "https://your-endpoint";String uploadId = "upload id from initiateMultipartUpload";// 创建ObsClient实例ObsClient obsClient = new ObsClient(ak, sk, endPoint);//列举已上传的段,其中uploadId来自于initiateMultipartUpload ListPartsRequest request = new ListPartsRequest("bucketname", "objectname");request.setUploadId(uploadId);ListPartsResult result = obsClient.listParts(request);for(Multipart part : result.getMultipartList()){ // 分段号,上传时候指定 Log.i("ListParts", "\t"+part.getPartNumber()); // 段数据大小 Log.i("ListParts","\t"+part.getSize()); // 分段的ETag值 Log.i("ListParts","\t"+part.getEtag()); // 段的最后上传时间 Log.i("ListParts","\t"+part.getLastModified());} 列举段至多返回1000个段信息,如果指定的Upload ID包含的段数量大于1000,则返回结果中ListPartsResult.isTruncated为true表明本次没有返回全部段,并可通过ListPartsResult.getNextPartNumberMarker获取下次列举的起始位置。 如果想获取指定Upload ID包含的所有分段,可以采用分页列举的方式。 列举所有段 由于ObsClient.listParts只能列举至多1000个段,如果段数量大于1000,列举所有分段请参考如下示例: // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。// 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.htmlString ak = System.getenv("ACCESS_KEY_ID");String sk = System.getenv("SECRET_ACCESS_KEY_ID");String endPoint = "https://your-endpoint";String uploadId = "upload id from initiateMultipartUpload";// 创建ObsClient实例ObsClient obsClient = new ObsClient(ak, sk, endPoint);// 列举所有已上传的段,其中uploadId来自于initiateMultipartUpload ListPartsRequest request = new ListPartsRequest("bucketname", "objectname");request.setUploadId(uploadId);ListPartsResult result;do{ result = obsClient.listParts(request); for(Multipart part : result.getMultipartList()){ // 分段号,上传时候指定 Log.i("ListParts","\t"+part.getPartNumber()); // 段数据大小 Log.i("ListParts","\t"+part.getSize()); // 分段的ETag值 Log.i("ListParts","\t"+part.getEtag()); // 段的最后上传时间 Log.i("ListParts","\t"+part.getLastModified()); } request.setPartNumberMarker(Integer.parseInt(result.getNextPartNumberMarker()));}while(result.isTruncated());
  • 初始化分段上传任务 使用分段上传方式传输数据前,必须先通知OBS初始化一个分段上传任务。该操作会返回一个OBS服务端创建的全局唯一标识(Upload ID),用于标识本次分段上传任务。您可以根据这个唯一标识来发起相关的操作,如取消分段上传任务、列举分段上传任务、列举已上传的段等。 您可以通过ObsClient.initiateMultipartUpload初始化一个分段上传任务: // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。// 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.htmlString ak = System.getenv("ACCESS_KEY_ID");String sk = System.getenv("SECRET_ACCESS_KEY_ID");String endPoint = "https://your-endpoint";// 创建ObsClient实例ObsClient obsClient = new ObsClient(ak, sk, endPoint);InitiateMultipartUploadRequest request = new InitiateMultipartUploadRequest("bucketname", "objectname");ObjectMetadata metadata = new ObjectMetadata();metadata.addUserMetadata("property", "property-value");metadata.setContentType("text/plain");request.setMetadata(metadata);InitiateMultipartUploadResult result = obsClient.initiateMultipartUpload(request);String uploadId = result.getUploadId();Log.i("InitiateMultipartUpload", "\t" + uploadId); 用InitiateMultipartUploadRequest指定上传对象的名称和所属桶。 在InitiateMultipartUploadRequest中,您可以设置对象MIME类型、对象存储类型、对象自定义元数据等对象属性。 InitiateMultipartUploadResult.getUploadId返回分段上传任务的全局唯一标识(Upload ID),在后面的操作中将用到它。 由于 HTTP 编码规范限制,无法发送非 ASCII 码字符,SDK 会在发送请求时对您头域中的中文汉字进行 url 编码,发送编码后数据。如您设置的值 content-disposition 为“attachment; filename="中文.txt"” ,则对象元数据中存储的信息为“attachment; filename="%E4%B8%AD%E6%96%87.txt"”。使用浏览器访问时浏览器将会自动解码。 如果不需要 SDK 帮您编码,可以调用 InitiateMultipartUploadRequest.setIsEncodeHeaders(false) 关闭自动编码。
  • 断点续传下载 开发过程中,您有任何问题可以在github上提交issue,或者在华为云对象存储服务论坛中发帖求助。接口参考文档详细介绍了每个接口的参数和使用方法。 当下载大对象到本地时,经常出现因网络不稳定或程序崩溃导致下载失败的情况。失败后再次重新下载不仅浪费资源,而且当网络不稳定时仍然有下载失败的风险。断点续传下载接口能有效地解决此类问题引起的下载失败,其原理是将待下载的对象分成若干个分段分别下载,并实时地将每段下载结果统一记录在checkpoint文件中,仅当所有分段都下载成功时返回下载成功的结果,否则抛出异常提醒用户再次调用接口进行重新下载(重新下载时因为有checkpoint文件记录当前的下载进度,避免重新下载所有分段,从而节省资源提高效率)。 您可以通过ObsClient.downloadFile进行断点续传下载。该接口可设置的参数如下: 参数 作用 OBS Android SDK对应方法 bucketName 桶名,必选参数。 DownloadFileRequest.setBucketName objectKey 对象名,必选参数。 DownloadFileRequest.setObjectKey downloadFile 下载对象的本地文件全路径。当该值为空时,默认为当前程序的运行目录。 DownloadFileRequest.setDownloadFile partSize 分段大小,单位字节,取值范围是100KB~5GB,默认为5MB。 DownloadFileRequest.setPartSize taskNum 分段下载时的最大并发数,默认为1。 DownloadFileRequest.setTaskNum isEncodeHeaders 是否自动解码响应头 DownloadFileRequest.setIsEncodeHeaders enableCheckpoint 是否开启断点续传模式,默认为false,表示不开启。 DownloadFileRequest.setEnableCheckpoint checkpointFile 记录下载进度的文件,只在断点续传模式下有效。当该值为空时,默认与下载对象的本地文件路径同目录。 DownloadFileRequest.setCheckpointFile versionId 对象的版本号。 DownloadFileRequest.setVersionId ifModifiedSince 如果对象在指定的时间后有修改,则返回对象内容,否则返回错误。 DownloadFileRequest.setIfModifiedSince ifUnmodifiedSince 如果对象在指定的时间后没有修改,则返回对象内容,否则返回错误。 DownloadFileRequest.setIfUnmodifiedSince ifMatchTag 如果对象的ETag值与该参数值相同,则返回对象内容,否则抛出异常。 DownloadFileRequest.setIfMatchTag ifNoneMatchTag 如果对象的ETag值与该参数值不相同,则返回对象内容,否则抛出异常。 DownloadFileRequest.setIfNoneMatchTag progressListener 设置数据传输监听器,用于获取下载进度。 DownloadFileRequest.setProgressListener 以下代码展示了如何使用断点续传下载接口下载对象到本地文件: // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。// 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.htmlString ak = System.getenv("ACCESS_KEY_ID");String sk = System.getenv("SECRET_ACCESS_KEY_ID");String endPoint = "https://your-endpoint";// 创建ObsClient实例ObsClient obsClient = new ObsClient(ak, sk, endPoint);DownloadFileRequest request = new DownloadFileRequest("bucketname", "objectname");// 设置下载对象的本地文件路径request.setDownloadFile("localfile");// 设置分段下载时的最大并发数request.setTaskNum(5);// 设置分段大小为10MBrequest.setPartSize(10 * 1024 * 1024);// 开启断点续传模式request.setEnableCheckpoint(true);try{ // 进行断点续传下载 DownloadFileResult result = obsClient.downloadFile(request);}catch (ObsException e) { // 发生异常时可再次调用断点续传下载接口进行重新下载} 断点续传下载接口是利用范围下载特性实现的,是对范围下载的封装和加强。 断点续传下载接口不仅能在失败重下时节省资源提高效率,还因其对分段进行并发下载的机制能加快下载速度,帮助用户快速完成下载业务;且其对用户透明,用户不用关心checkpoint文件的创建和删除、分段任务的切分、并发下载的实现等内部细节。 enableCheckpoint参数默认是false,代表不启用断点续传模式,此时断点续传下载接口退化成对范围下载的简单封装,不会产生checkpoint文件。 checkpointFile参数仅在enableCheckpoint参数为true时有效。 由于 HTTP 编码规范限制,无法发送非 ASCII 码字符,SDK 会在接收响应时使用 url 解码规则解码响应头中的信息,。如您的元数据存储的 content-disposition 为“attachment; filename="%E4%B8%AD%E6%96%87.txt"”,则 SDK 获取结果为“attachment; filename="中文.txt"”。 如果不需要 SDK 帮您解码,可以调用 DownloadFileRequest.setIsEncodeHeaders(false) 关闭自动解码。 父主题: 下载对象
  • 删除单个对象 您可以通过ObsClient.deleteObject删除单个对象。以下代码展示如何删除单个对象: // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。// 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.htmlString ak = System.getenv("ACCESS_KEY_ID");String sk = System.getenv("SECRET_ACCESS_KEY_ID");String endPoint = "https://your-endpoint";// 创建ObsClient实例ObsClient obsClient = new ObsClient(ak, sk, endPoint);obsClient.deleteObject("bucketname", "objectname");
  • 批量删除对象 您可以通过ObsClient.deleteObjects批量删除对象。 每次最多删除1000个对象,并支持两种响应模式:详细(verbose)模式和简单(quiet)模式。 详细模式:返回的删除成功和删除失败的所有结果,默认模式。 简单模式:只返回的删除过程中出错的结果。 以下代码展示了如何进行批量删除桶内所有对象: // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。// 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.htmlString ak = System.getenv("ACCESS_KEY_ID");String sk = System.getenv("SECRET_ACCESS_KEY_ID");String endPoint = "https://your-endpoint";ObsClient obsClient = new ObsClient(ak, sk, endPoint);ListVersionsRequest request = new ListVersionsRequest("bucketname");// 每次批量删除100个对象request.setMaxKeys(100);ListVersionsResult result;do { result = obsClient.listVersions(request); DeleteObjectsRequest deleteRequest = new DeleteObjectsRequest("bucketname"); for(VersionOrDeleteMarker v : result.getVersions()) { deleteRequest.addKeyAndVersion(v.getKey(), v.getVersionId()); } DeleteObjectsResult deleteResult = obsClient.deleteObjects(deleteRequest); // 获取删除成功的对象 Log.i("DeletesObjects",deleteResult.getDeletedObjectResults()); // 获取删除失败的对象 Log.i("DeletesObjects", deleteResult.getErrorResults()); request.setKeyMarker(deleteResult.getNextKeyMarker()); request.setVersionIdMarker(deleteResult.getNextVersionIdMarker());}while(result.isTruncated());
  • 设置对象属性 您可以通过ObsClient.setObjectMetadata来设置对象属性,包括对象自定义元数据等信息。 除了 HTTP 标准头域外,您也可以指定自定义元数据,自定义元数据仅支持英文字符、数字与中划线【-】。 以下代码展示了如何设置对象属性: // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。// 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.htmlString ak = System.getenv("ACCESS_KEY_ID");String sk = System.getenv("SECRET_ACCESS_KEY_ID");String endPoint = "https://your-endpoint";// 创建ObsClient实例final ObsClient obsClient = new ObsClient(ak, sk, endPoint);SetObjectMetadataRequest request = new SetObjectMetadataRequest("bucketname", "objectname");// 对象的 HTTP 标准头域request.setContentType("ContentType");request.setExpires("Expires");// 设置自定义元数据request.addUserMetadata("property1", "property-value1");ObjectMetadata metadata = obsClient.setObjectMetadata(request);Log.i("\t" + metadata.getUserMetadata("property1")); 由于 HTTP 编码规范限制,无法发送非 ASCII 码字符,SDK 会在发送请求时对您头域中的中文汉字进行 url 编码,发送编码后数据。如您设置的值 content-disposition 为 “attachment; filename="中文.txt"”,则对象元数据中存储的信息为“attachment; filename="%E4%B8%AD%E6%96%87.txt"”。使用浏览器访问时浏览器将会自动解码。 如果不需要 SDK 帮您编码,可以调用 SetObjectMetadataRequest.setIsEncodeHeaders(false) 关闭自动编码。 父主题: 管理对象
  • 初始化OBS客户端 开发过程中,您有任何问题可以在github上提交issue,或者在华为云对象存储服务论坛中发帖求助。接口参考文档详细介绍了每个接口的参数和使用方法。 向OBS发送任一HTTP/HTTPS请求之前,必须先创建一个ObsClient实例: // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。// 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.htmlString ak = System.getenv("ACCESS_KEY_ID");String sk = System.getenv("SECRET_ACCESS_KEY_ID");String endPoint = "https://your-endpoint";// 创建ObsClient实例ObsClient obsClient = new ObsClient(ak, sk, endPoint); // 使用访问OBS // 关闭obsClientobsClient.close(); 更多关于OBS客户端初始化的操作请参见“初始化”章节。 日志配置详见配置SDK日志 父主题: 快速入门
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全