云服务器内容精选

  • 其他使用前须知 本文档是与OBS SDK配套的参考文档,为了您能更好的使用Java SDK,推荐前往下载与安装SDK(Java SDK)下载最新版本的Java SDK。 请确认您已经熟悉OBS的基本概念,如桶(Bucket)、对象(Object)、访问密钥(AK和SK)、终端节点(Endpoint)和访问域名等。 您可以先参考OBS客户端通用示例,了解OBS Java SDK接口调用的通用方式。 使用OBS客户端进行接口调用操作完成后,没有异常抛出,则表明返回值有效;如果抛出异常,则说明操作失败,此时可从SDK自定义异常实例中获取错误信息。 使用OBS客户端进行接口调用成功后,均会返回包含响应头信息的SDK公共响应头实例(或其子类实例)。 当前各区域特性开放不一致,部分特性只在部分区域开放,使用过程中如果接口HTTP状态码为405,请确认该区域是否支持该功能特性。您可以查看功能总览确认区域是否支持该功能特性,或者提交工单寻求技术支持。
  • 接口约束 您必须是桶拥有者或拥有下载对象的权限,才能下载对象。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:GetObject权限,如果使用桶策略则需授予GetObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的region以及region与endPoint的对应关系,详细信息请参见地区与终端节点。 所有的图片处理操作均不会修改存储在桶中的原图。 归档存储不支持图片处理。 深度归档存储不支持图片处理。 处理后的图片直接返回浏览器展示,不会保存在OBS中,也不会占用存储空间,不会产生存储费用。图片处理只收取处理的费用。
  • 代码示例 图片处理下载。以下代码展示对examplebucket桶里的objectname.jpg图片对象进行缩放、旋转然后进行下载。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 import com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.GetObjectRequest; import com.obs.services.model.ObsObject; public class GetObject008 { public static void main(String[] args) { // 您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。 // 您可以登录访问管理控制台获取访问密钥AK/SK String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。 // 您可以通过环境变量获取访问密钥AK/SK/SecurityToken,也可以使用其他外部引入方式传入。 // String securityToken = System.getenv("SECURITY_TOKEN"); // endpoint填写桶所在的endpoint, 此处以华北-北京四为例,其他地区请按实际情况填写。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 您可以通过环境变量获取endPoint,也可以使用其他外部引入方式传入。 //String endPoint = System.getenv("ENDPOINT"); // 创建ObsClient实例 // 使用永久AK/SK初始化客户端 ObsClient obsClient = new ObsClient(ak, sk,endPoint); // 使用临时AK/SK和SecurityToken初始化客户端 // ObsClient obsClient = new ObsClient(ak, sk, securityToken, endPoint); try { // 发起图片处理请求并下载 // examplebucket为桶名,objectname.jpg为对象名 GetObjectRequest request = new GetObjectRequest("examplebucket", "objectname.jpg"); // 设置图片处理参数,对图片依次进行缩放、旋转 request.setImageProcess("image/resize,m_fixed,w_100,h_100/rotate,90"); ObsObject obsObject = obsClient.getObject(request); System.out.println("getObject successfully"); obsObject.getObjectContent().close(); } catch (ObsException e) { System.out.println("getObject failed"); // 请求失败,打印http状态码 System.out.println("HTTP Code:" + e.getResponseCode()); // 请求失败,打印服务端错误码 System.out.println("Error Code:" + e.getErrorCode()); // 请求失败,打印详细错误信息 System.out.println("Error Message:" + e.getErrorMessage()); // 请求失败,打印请求id System.out.println("Request ID:" + e.getErrorRequestId()); System.out.println("Host ID:" + e.getErrorHostId()); e.printStackTrace(); } catch (Exception e) { System.out.println("getObject failed"); // 其他异常信息打印 e.printStackTrace(); } } }
  • 返回结果说明 getObject返回结果如下 表13 ObsObject 参数名称 参数类型 描述 bucketName String 参数解释: 桶名。 约束限制: 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 默认取值: 无 objectKey String 参数解释: 对象名。对象名是对象在存储桶中的唯一标识。对象名是对象在桶中的完整路径,路径中不包含桶名。 例如,您对象的访问地址为examplebucket.obs.cn-north-4.myhuaweicloud.com/folder/test.txt 中,对象名为folder/test.txt。 取值范围: 长度大于0且不超过1024的字符串。 默认取值: 无 owner Owner 参数解释: 所有者,详见Owner。 metadata ObjectMetadata 参数解释: 对象元数据,详见ObjectMetadata。 objectContent InputStream 参数解释: 对象数据流。 默认取值: 无
  • 接口约束 您必须是桶拥有者或拥有下载对象的权限,才能下载对象。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:GetObject权限,如果使用桶策略则需授予GetObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的region以及region与endPoint的对应关系,详细信息请参见地区与终端节点。 所有的图片处理操作均不会修改存储在桶中的原图。 归档存储不支持图片处理。 深度归档存储不支持图片处理。 处理后的图片直接返回浏览器展示,不会保存在OBS中,也不会占用存储空间,不会产生存储费用。图片处理只收取处理的费用。
  • 修订记录(Java SDK) 发布日期 修订记录 2024-06-11 第三十四次正式发布。 使用前须知(Java SDK)章节刷新其他使用前须知。 新增章节本文档是否适用于union SDK?。 2024-04-18 第三十三次正式发布: 新增章节设置对象AccessLabel。 新增章节获取对象AccessLabel。 新增章节删除对象AccessLabel。 2024-01-12 第三十二次正式发布: 设置对象元数据(Java SDK)章节增加接口约束。 2023-12-26 第三十一次正式发布: 优化使用前须知(Java SDK)、Java SDK接口概览(Java SDK)、使用前准备(Java SDK)、下载与安装SDK(Java SDK)、快速入门(Java SDK)、初始化(Java SDK)章节内容。 优化管理对象(Java SDK)、临时授权访问(Java SDK)、多版本控制(Java SDK)、生命周期管理(Java SDK)、跨域资源共享(Java SDK)、设置访问日志(Java SDK)、静态网站托管(Java SDK)、桶标签管理(Java SDK)章节接口功能描述、接口约束及示例代码。 2023-12-15 第三十次正式发布: 优化上传对象(Java SDK)章节接口功能描述、接口约束及示例代码。 优化下载对象(Java SDK)章节接口功能描述、接口约束及示例代码。 2023-11-25 第二十九次正式发布: 优化管理并行文件系统(Java SDK)章节接口功能描述、接口约束及示例代码。 2023-11-20 第二十八次正式发布: 优化桶清单(Java SDK)章节接口功能描述、接口约束及示例代码。 2023-11-14 第二十七次正式发布: 优化管理桶(Java SDK)章节接口功能描述、接口约束及示例代码。 2023-08-26 第二十六次正式发布: 新增章节如何指定Content-SHA256?(Java SDK)。 新增章节为什么SDK源码中包含acs.amazonaws.com关键字?(Java SDK)。 2023-08-24 第二十五次正式发布。 新增章节: 通过Header鉴权访问OBS(Java SDK) 修改章节: 开发环境准备 增加约束与限制内容。 2023-08-10 第二十四次正式发布。 修改章节: 服务端加密(Java SDK) 增加SSE-OBS加密类型说明。 2023-08-07 第二十三次正式发布。 新增章节: 列举并行文件系统内对象 2021-10-15 第二十二次正式发布 修改安装 SDK 说明。 2021-08-30 第二十一次正式发布。 发布 3.21.8 版本。 2021-07-30 第二十次正式发布。 新增章节: 依赖缺失和依赖冲突的解决 2021-06-07 第十九次正式发布。 修改章节: 管理桶策略章节增加桶策略说明。 2020-07-15 第十八次正式发布。 修改章节: 使用URL进行授权访问,修复创建桶示例程序中的BUG。 2020-06-30 第十七次正式发布。 修改章节: 图片处理,新增通过临时授权方式实现图片处理的示例。 创建桶,新增创建多AZ桶的说明。 新增章节: 设置对象元数据 2020-02-11 第十六次正式发布。 新增章节: 如何生成SSE-C方式的加密密钥 SDK是否支持批量上传、下载或者复制对象 2019-12-09 第十五次正式发布。 修改章节: 创建OBS客户端,增加链式方式创建OBS客户端的相关说明。 2019-11-20 第十四次正式发布。 调整以下章节的位置: 示例程序 技术支持渠道 2019-11-11 第十三次正式发布。 新增章节: 管理并行文件系统 2019-07-31 第十二次正式发布。 新增章节: 问题定位(Java SDK) HTTP状态码(Java SDK) 常见问题(Java SDK) 2019-06-28 第十一次正式发布。 修改章节: 示例程序,增加临时访问密钥相关示例代码。 安装SDK,增加gradle配置方式。 2019-03-30 第十次正式发布。 修改章节: 如何使对象可以被匿名用户访问?,优化描述内容。 安装SDK,更新操作步骤。 10.2-OBS服务环境搭建,增加临时访问密钥相关内容。 新增章节: API参考。 2019-03-05 第九次正式发布。 修改章节: “事件通知”各子章节,新增函数工作流服务功能的说明及代码样例。 新增章节: SDK的重试机制是什么? 如何获取桶的静态网站访问地址? 如何获取对象URL? 如何快速上传大文件到OBS? 2019-02-18 第八次正式发布。 修改章节: 使用URL进行授权访问,优化描述内容,增加“下载加密类型的对象”代码样例。 安装SDK,修改方式二的步骤。 2018-10-31 第七次正式发布。 新增章节: 获取上传进度 获取下载进度 修改章节: 配置OBS客户端,新增部分配置参数。 2018-08-31 第六次正式发布。 新增章节: 设置对象生命周期 基于表单上传 2018-06-11 第五次正式发布。 新增章节: 追加上传 修改章节: 日志分析,新增开启日志方式。 2018-01-31 第四次正式发布。 调整章节: “快速入门”,新增OBS服务环境搭建、开发环境准备、安装SDK、获取服务地址。 “相关资源”,新增示例程序,移除OBS服务端环境搭建。 “初始化”,移除服务地址。 修改章节: “临时授权访问”章节,修改示例代码。 “设置生命周期规则”章节,修改示例代码。 “查看生命周期规则”章节,修改示例代码。 2017-12-31 第三次正式发布。 新增章节: 图片处理 修改章节: 安装方式,新增Maven安装方式。 生命周期管理,新增对象转换策略特性。 2017-11-30 第二次正式发布。 新增章节: 桶存储类别 断点续传上传 断点续传下载 修改章节: 设置对象属性,新增设置对象存储类别相关内容 2017-10-10 第一次正式发布。
  • 查询账单时,为什么会有大量的公网流出流量? 根据账单的使用量类型来区分,OBS的公网流出流量主要包含标准存储公网流出流量、低频访问存储公网流出流量、归档存储公网流出流量、深度归档存储公网流出流量。 这几种公网流出流量产生的流量费用来源如下: 标准存储公网流出流量:通过互联网下载标准存储对象、列举对象所产生的流出流量费用。 低频访问存储公网流出流量:恢复低频访问存储对象后,通过互联网下载低频访问存储对象所产生的流出流量费用。 归档存储公网流出流量:恢复归档存储对象后,通过互联网下载归档存储对象所产生的流出流量费用。 深度归档存储公网流出流量:恢复深度归档存储对象后,通过互联网下载深度归档存储对象所产生的流出流量费用。 如果要减少公网流出流量,可以按照以下方法: 检查桶是否开启了公共读 如果桶开启了公共读,那么任何人均可访问桶,下载桶内任意对象,从而产生大量的公网流出流量。 建议您不要针对整个桶开启公共读权限(设置为私有桶),可将单个目录或对象设置为公共读,然后获取对象URL,提供给用户访问。 开启桶日志并设置桶策略 建议您开启桶日志,一段时间后分析日志中记录的请求IP等信息,如果请求IP固定且不需要该IP访问对象,可通过设置桶策略,拒绝请求来源的IP访问桶。具体请参见限制指定的IP地址访问桶。 设置防盗链(白名单或黑名单访问) 针对账单中请求量较大的时间点,查询该时间点对应的日志,过滤出请求来源的Referer字段信息,设置防盗链。 父主题: 计费相关
  • 修订记录 发布日期 修订记录 2024-05-25 第三十六次正式发布。 本次更新说明如下: “权限相关”下新增“为什么通过控制台设置匿名用户桶ACL后,旧配置中的delivered属性会被覆盖为false?”章节。 2024-02-07 第三十五次正式发布。 本次更新说明如下: 刷新OBS上传下载速率的影响因素有哪些?章节。 2024-01-18 第三十四次正式发布。 本次更新说明如下: 新增如何上传超过5GB的大对象?章节。 新增删除对象失败章节。 2023-11-15 第三十三次正式发布。 本次更新说明如下: 刷新OBS是否支持流量监控?章节的监控指标。 2023-11-03 第三十二次正式发布。 本次更新说明如下: 新增为什么会存在CNAME解析状态为未知的情况?常见问题。 新增为什么用户在华为云购买的域名才支持一键解析?常见问题。 2023-10-25 第三十一次正式发布。 本次更新说明如下: 新增OBS账单为什么会出现0.01元的计费?常见问题。 2023-10-16 第三十次正式发布。 本次更新说明如下: 刷新对象列表相关页面截图。 被委托账号或用户为什么无法上传下载KMS加密对象?章节增加注意事项内容。 新增分享对象时,OBS的SSE-OBS服务端加密方式是否需要授权特殊权限?常见问题。 2023-10-09 第二十九次正式发布。 刷新如何批量删除桶中大量对象或清空桶?章节。 刷新我在什么场景下需要使用生命周期管理?章节。 新增配置桶加密方式后,OBS的服务端加密会对历史对象进行加密吗?章节。 新增OBS的服务端加密会收取加密的费用吗?章节。 新增OBS的SSE-KMS服务端加密方式是否支持匿名访问?章节。 2023-07-31 第二十八次正式发布。 刷新OBS上传下载速率的影响因素有哪些?章节。 2023-07-17 第二十七次正式发布。 刷新了如何访问或下载已加密的对象?的答案。 2023-06-16 第二十六次正式发布。 新增常见问题为什么OBS的云监控指标看不到5xx状态码统计数? 2023-05-30 第二十五次正式发布。 本次更新说明如下: 刷新了计费相关中升配资源包的相关答案。 2023-04-26 第二十四次正式发布。 本次更新说明如下: 新增了安全性的相关问题及答案。 2023-03-03 第二十三次正式发布。 本次更新说明如下: 更新了部分答案描述。 2020-05-19 第二十二次正式发布。 本次更新说明如下: 调整问题分类。 2019-08-22 第二十一次正式发布。 本次更新说明如下: 更新了部分答案描述。 2019-08-14 第二十次正式发布。 本次更新说明如下: 更新了跨区域复制相关问题的答案。 2019-07-18 第十九次正式发布。 本次更新说明如下: 新增了持久性和可用性相关的问题及答案。 2019-06-13 第十八次正式发布。 本次更新说明如下: 更新了批量上传的答案。 2019-05-22 第十七次正式发布。 本次更新说明如下: 新增了数据丢失问题及答案。 新增了已删除数据可否恢复问题及答案。 2019-04-30 第十六次正式发布。 本次更新说明如下: 更新了如何处理碎片的问题及答案。 新增了自定义域名绑定的相关问题及答案。 2019-03-29 第十五次正式发布。 本次更新说明如下: 更新了文档结构内容和问题及答案。 2019-01-29 第十四次正式发布。 本次更新说明如下: 增加了如何处理碎片的问题及答案。 2018-11-30 第十三次正式发布。 本次更新说明如下: 增加了其他用户访问OBS数据的问题及答案。 2018-11-16 第十二次正式发布。 本次更新说明如下: 增加了是否支持修改对象名的问题及答案。 增加了是否支持桶间文件复制的问题及答案。 增加了是否支持桶间文件移动的问题及答案。 2018-10-31 第十一次正式发布。 本次更新说明如下: 增加OBS是否支持HTTPS的问题及答案。 增加了OBS是否支持冗余备份的问题及答案。 2018-10-19 第十次正式发布。 本次更新说明如下: 更新了多版本控制的答案。 2018-08-15 第九次正式发布。 本次更新说明如下: OBS收费增加了CDN回源流量包。 2018-06-30 第八次正式发布。 本次更新说明如下: 增加了标签相关问题。 2018-04-30 第七次正式发布。 本次更新说明如下: 更新了批量上传问题答复。 2018-04-15 第六次正式发布。 本次更新说明如下: 增加跨区域复制。 软件框架切换,刷新图片。 2018-03-16 第五次正式发布。 本次更新说明如下: 增加流量监控功能。 软件框架切换,刷新图片。 增加了对象级存储类别。 增加了修改桶和对象的存储类别的功能。 购买指南中删除计费介绍和计费案例,详细的服务资费费率标准请参见价格说明。 2017-12-20 第四次正式发布。 本次更新说明如下: 在《控制台指南》中增加如下内容: “配置事件通知”中增加多项目。 “出现“客户端与服务器的时间相差15分钟”的报错”章节。 创建桶时增加了一键式设置桶策略功能。 2017-10-30 第三次正式发布。 本次更新说明如下: 在《控制台指南》的“查看桶的基本信息”中增加“Endpoint”和“访问域名”。 在《控制台指南》的“通过对象(URL)访问对象”中修改URL的格式。 在《控制台指南》的“配置桶策略”中增加了一键式配置通用策略。 在《控制台指南》的“异常处理”中增加“配置事件通知失败”章节。 在《购买指南》中删除余额小于100的限制。 在《快速入门》的“注册云服务账号”中删除“隐私保护”。 2017-09-28 第二次正式发布。 本次更新说明如下: 在《产品简介》中增加“文档导读”。 在《快速入门》中增加“相关操作”。 在《控制台指南》中修改“配置桶策略”章节、新增“动作和条件的详细解释”章节。 2017-08-20 第一次正式发布。
  • 配置须知 本案例预置的“目录只读”模板允许所有账号(所有互联网用户)对指定目录执行以下权限: GetObject:获取对象内容、获取对象元数据 GetObjectVersion:获取指定版本对象内容、获取指定版本对象元数据 GetObjectVersionAcl:获取指定版本对象ACL GetObjectAcl:获取对象ACL RestoreObject:恢复归档存储对象 HeadBucket:判断桶是否存在、获取桶元数据 GetBucketLocation:获取桶位置 使用本案例授权会涉及部分桶相关权限(HeadBucket、GetBucketLocation),请谨慎使用。如果需要缩小权限范围,请参考对所有账号授予指定对象的读权限。
  • 场景介绍 本章节介绍如何通过企业项目为华为云账号下的某个IAM用户配置指定桶的权限,使其只能在控制台看到授权的桶并且拥有桶的指定权限,无法看到账号下的其他桶,实现桶资源的隔离。 本案例将指定IAM用户test-user只能在控制台看到名为example的桶,并且只拥有上传权限(obs:object:PutObject)、列举桶内权限(obs:bucket:ListBucket)和列举桶权限(obs:bucket:ListAllMyBuckets),通过这些权限test-user用户可以完成上传对象的操作。
  • 配置须知 如果同时在IAM和企业项目中针对某个动作(Action)为某IAM用户进行了授权,授权结果以IAM为准。 举例: 1、如果在IAM和企业项目同时配置了列举桶权限(obs:bucket:ListAllMyBuckets),最终结果会列举出所有桶,包括用户所属企业项目之外的桶。 2、针对上传权限(obs:object:PutObject),如果在IAM中配置Allow,企业项目中配置deny,最终结果为Allow,即允许上传对象。 如果在IAM中为某IAM用户配置OBS Viewer权限,并且将其所在用户组加入至企业项目中,则IAM用户登录后将会出现无法列举桶的情况。 配置完成进入桶后仍然会出现无权限相关提示,属于正常现象,因为控制台还调用了其他高级配置的接口,但此时已可以正常完成读写模式中允许的操作。
  • 配置须知 本案例预置的“桶读写”模板允许其他账号对整个桶及桶内所有对象执行除以下权限以外的所有权限: DeleteBucket:删除桶 PutBucketPolicy:设置桶策略 PutBucketAcl:设置桶ACL 按照本案例配置后,被授权账号可以正常通过API或SDK完成读写操作(上传、下载、删除桶内所有对象),此外允许通过OBS Browser+挂载外部桶的方式完成读写操作。暂不支持在OBS控制台访问非本账号的OBS桶。 通过OBS Browser+访问添加的外部桶可能仍会出现无权限的相关提示信息。 报错原因:OBS Browser+桶详情页面的加载会调用一些其他的OBS接口,而授予的读写权限中并没有包含这些操作的权限,所以会提示“拒绝访问,请检查相应权限”,或者“不允许在请求的资源上执-行此操作”,但并不影响已有权限。
  • 配置须知 按照本案例配置后,可以正常通过API或SDK完成对象下载操作,但如果通过控制台或OBS Browser+登录桶列表,会出现无权限的相关提示信息。 报错原因:通过控制台或者OBS Browser+登录后,加载桶列表时会调用获取桶列表(ListAllMyBuckets)等接口,加载对象列表时会调用列举桶内对象(ListBucket)等接口,其他页面也会调用其他的OBS接口。而授予的只读权限中并没有包含这些操作的权限,所以会提示“拒绝访问,请检查相应权限”,或者“不允许在请求的资源上执行此操作”。
  • 相关场景 如果想要实现只允许指定的IP地址访问OBS桶,则将上述示例中桶策略的“条件运算符”设置为“NotIpAddress”,并在“值”中指定允许的IP地址即可。 在内网访问OBS的场景下,如果想要限制指定私网IP地址访问桶,需要购买网关型VPCEP终端节点(服务类别选择“按名称查找服务”,获取服务名称请提交工单,技术人员将为您提供)。通过VPCEP终端节点访问桶,OBS侧感知到的源IP即为私网IP,桶策略可直接针对私网IP进行访问限制。
  • 配置须知 按照本案例配置后,可以正常通过API或SDK完成对象下载操作,但如果通过控制台或OBS Browser+登录桶列表,会出现无权限的相关提示信息。 报错原因:通过控制台或者OBS Browser+登录后,加载桶列表时会调用获取桶列表(ListAllMyBuckets)等接口,加载对象列表时会调用列举桶内对象(ListBucket)等接口,其他页面也会调用其他的OBS接口。而授予的只读权限中并没有包含这些操作的权限,所以会提示“拒绝访问,请检查相应权限”,或者“不允许在请求的资源上执行此操作”。 如果希望IAM用户能在控制台或OBS Browser+顺利完成对象下载操作,请按照后续操作继续配置IAM自定义策略。