华为云用户手册

  • 其他使用前须知 本文档是与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,请确认该区域是否支持该功能特性。您可以查看功能总览确认区域是否支持该功能特性,或者提交工单寻求技术支持。
  • 列举对象 以下代码展示了列举名为examplebucket桶中的对象。了解更多请参见列举对象(Java SDK)。 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 import com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.ObjectListing; import com.obs.services.model.ObsObject; public class ListObjects001 { public static void main(String[] args) { // 您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。 // 您可以登录访问管理控制台获取访问密钥AK/SK String ak = System.getenv("AC CES S_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 { // 简单列举 ObjectListing result = obsClient.listObjects("examplebucket"); for (ObsObject obsObject : result.getObjects()) { System.out.println("listObjects successfully"); System.out.println("ObjectKey:" + obsObject.getObjectKey()); System.out.println("Owner:" + obsObject.getOwner()); } } catch (ObsException e) { System.out.println("listObjects 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("listObjects failed"); // 其他异常信息打印 e.printStackTrace(); } } }
  • 删除对象 以下代码展示了删除examplebucket桶中名为objectname的对象。了解更多请参见删除对象(Java SDK)。 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 import com.obs.services.ObsClient; import com.obs.services.exception.ObsException; public class DeleteObject001 { 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 { // 删除单个对象 obsClient.deleteObject("examplebucket", "objectname"); System.out.println("deleteObject successfully"); } catch (ObsException e) { System.out.println("deleteObject 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("deleteObject failed"); // 其他异常信息打印 e.printStackTrace(); } } }
  • 下载对象 以下代码展示了下载examplebucket桶中名为objectname的对象。了解更多请参见下载对象(Java SDK)。 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 53 54 55 56 57 58 59 60 import com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.ObsObject; import java.io.ByteArrayOutputStream; import java.io.InputStream; public class GetObject001 { 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, 此处以华北-北京四为例,其他地区请按实际情况填写。查看桶所在的endpoint请参见:https://support.huaweicloud.com/usermanual-obs/obs_03_0312.html。 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 { // 流式下载 ObsObject obsObject = obsClient.getObject("examplebucket", "objectname"); // 读取对象内容 System.out.println("Object content:"); InputStream input = obsObject.getObjectContent(); byte[] b = new byte[1024]; ByteArrayOutputStream bos = new ByteArrayOutputStream(); int len; while ((len = input.read(b)) != -1) { bos.write(b, 0, len); } System.out.println("getObjectContent successfully"); System.out.println(new String(bos.toByteArray())); bos.close(); input.close(); } catch (ObsException e) { System.out.println("getObjectContent 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("getObjectContent failed"); // 其他异常信息打印 e.printStackTrace(); } } }
  • 创建桶 以下代码展示了创建一个名为examplebucket的桶,设置桶所在区域为华北-北京四,设置桶权限为私有,存储类别为标准存储,存储冗余类别为单AZ。了解更多请参见创建桶(Java SDK)。 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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 import com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.AccessControlList; import com.obs.services.model.AvailableZoneEnum; import com.obs.services.model.CreateBucketRequest; import com.obs.services.model.ObsBucket; import com.obs.services.model.StorageClassEnum; public class CreateBucket001 { 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 { CreateBucketRequest request = new CreateBucketRequest(); //示例桶名 String exampleBucket = "examplebucket"; //示例桶区域位置 String exampleLocation = "cn-north-4"; request.setBucketName(exampleBucket); // 设置桶访问权限为私有读写,默认也是私有读写 request.setAcl(AccessControlList.REST_CANNED_PRIVATE); // 设置桶的存储类别为标准存储 request.setBucketStorageClass(StorageClassEnum.STANDARD); // 设置桶区域位置(以区域为华北-北京四为例),location 需要与 endpoint的位置信息一致 request.setLocation(exampleLocation); // 指定创建多AZ桶,如果不设置,默认创建单AZ桶 request.setAvailableZone(AvailableZoneEnum.MULTI_AZ); // 创建桶 ObsBucket bucket = obsClient.createBucket(request); // 创建桶成功 System.out.println("CreateBucket successfully"); System.out.println("RequestId:"+bucket.getRequestId()); } catch (ObsException e) { System.out.println("CreateBucket 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()); } catch (Exception e) { System.out.println("CreateBucket failed"); // 其他异常信息打印 e.printStackTrace(); } } }
  • 上传对象 以下代码展示了向名为examplebucket的桶中上传2个对象,一个对象本地文件名为localfile,上传到桶中是名为objectkey,另一个对象本地文件名为localfile2,上传到桶中是名为objectkey2。了解更多请参见上传对象(Java SDK)。 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.PutObjectRequest; import java.io.File; public class PutObject004 { 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 { // 文件上传 // localfile 为待上传的本地文件路径,需要指定到具体的文件名 PutObjectRequest request = new PutObjectRequest(); request.setBucketName("examplebucket"); request.setObjectKey("objectkey"); request.setFile(new File("localfile")); obsClient.putObject(request); System.out.println("putObject successfully"); } catch (ObsException e) { System.out.println("putObject 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("putObject failed"); // 其他异常信息打印 e.printStackTrace(); } } }
  • 静态网站托管相关接口 静态网站托管相关接口如下表所示。 表9 静态网站托管相关接口概览 接口名 方法 功能描述 示例代码源代码 网站文件托管 obsClient.putObject(PutObjectRequest request) obsClient.setObjectAcl(SetObjectAclRequest acl) 将静态网站文件上传至OBS的桶中作为对象,并对这些对象赋予公共读权限,然后将该桶配置成静态网站托管模式,以实现在OBS上托管静态网站的目的。 - 设置托管配置 obsClient.setBucketWebsite(final SetBucketWebsiteRequest request) 为指定桶设置网站配置信息。 BucketOperationsSample 获取托管配置 obsClient.getBucketWebsite(final BaseBucketRequest request) 获取指定桶的网站配置信息。 BucketOperationsSample 删除托管配置 obsClient.deleteBucketWebsite(final BaseBucketRequest request) 删除指定桶的网站配置。 BucketOperationsSample
  • 标签管理相关接口 标签管理相关接口如下表所示。 表10 标签管理相关接口概览 接口名 方法 功能描述 示例代码源代码 设置桶标签 obsClient.setBucketTagging(final SetBucketTaggingRequest request) 为桶添加标签,该桶上所有请求产生的计费话单里都会带上这些标签,从而可以针对话单报表做分类筛选,进行更详细的成本分析。 BucketOperationsSample 获取桶标签 obsClient.getBucketTagging(final BaseBucketRequest request) 获取指定桶的标签。 BucketOperationsSample 删除桶标签 obsClient.deleteBucketTagging(final BaseBucketRequest request) 删除指定桶的标签。 BucketOperationsSample
  • 生命周期管理相关接口 生命周期管理相关接口如下表所示。 表6 生命周期管理相关接口概览 接口名 方法 功能描述 示例代码源代码 设置生命周期规则 obsClient.setBucketLifecycle(final SetBucketLifecycleRequest request) 为指定桶设置生命周期规则,实现定时删除桶中的对象或者定时转换对象的存储类别,从而节省存储费用。 BucketOperationsSample 获取生命周期规则 obsClient.getBucketLifecycle(final BaseBucketRequest request) 获取指定桶的生命周期规则。 BucketOperationsSample 删除生命周期规则 obsClient.deleteBucketLifecycle(final BaseBucketRequest request) 删除指定桶的生命周期规则。 BucketOperationsSample
  • 跨域资源共享相关接口 跨域资源共享相关接口如下表所示。 表7 跨域资源共享相关接口概览 接口名 方法 功能描述 示例代码源代码 设置跨域资源共享规则 obsclient.setBucketCors(final SetBucketCorsRequest request) 设置桶的跨域资源共享规则,允许客户端浏览器进行跨域请求。设置成功后,如果原规则存在则覆盖原规则。 BucketOperationsSample 获取跨域资源共享规则 obsclient.getBucketCors(final BaseBucketRequest request) 获取指定桶的跨域资源共享规则。 BucketOperationsSample 删除跨域规则 obsclient.deleteBucketCors(final BaseBucketRequest request) 删除指定桶的跨域资源共享规则。 BucketOperationsSample
  • 桶日志相关接口 设置访问日志相关接口如下表所示。 表8 桶日志相关接口概览 接口名 方法 功能描述 示例代码源代码 设置桶日志规则 obsClient.setBucketLogging(final SetBucketLoggingRequest request) 为指定桶打开桶日志功能,并配置日志存放的目标桶。桶日志功能开启后,桶的每次操作将会产生一条日志,并将多条日志打包成一个日志文件。日志文件存放到开启日志功能的桶中,也可以存放到其他您有权限的桶中,但需要和开启日志功能的桶在同一个region中。您还可以根据需要配置日志文件的访问权限,以及日志文件的文件名前缀。 BucketOperationsSample 获取桶日志规则 obsClient.getBucketLogging(final BaseBucketRequest request) 获取指定桶的日志配置。 BucketOperationsSample
  • 临时授权访问相关接口 临时授权访问相关接口如下表所示。 表4 临时授权访问相关接口概览 接口名 方法 功能描述 示例代码源代码 通过临时URL访问OBS obsClient.createTemporarySignature(TemporarySignatureRequest request) 通过访问密钥、请求方法类型、请求参数等信息生成一个在Query参数中携带鉴权信息的URL,可将该URL提供给其他用户进行临时访问。在生成URL时,您需要指定URL的有效期来限制访客用户的访问时长。 如果您想授予其他用户对桶或对象临时进行其他操作的权限(例如上传或下载对象),则需要生成带对应请求的URL后(例如使用生成PUT请求的URL上传对象),将该URL提供给其他用户。 TemporarySignatureSample
  • 多版本控制相关接口 多版本控制相关接口如下表所示。 表5 多版本控制相关接口概览 接口名 方法 功能描述 示例代码源代码 设置桶多版本状态 obsClient.setBucketVersioning(final SetBucketVersioningRequest request) 为指定桶设置多版本状态。在一个桶中保留对象的多个版本,可方便地检索和还原各个版本,在意外操作或应用程序故障时快速恢复数据。 BucketOperationsSample 获取桶多版本状态 obsClient.getBucketVersioning(final BaseBucketRequest request) 获取指定桶的多版本状态。 BucketOperationsSample 获取多版本对象 obsClient.getObject(GetObjectRequest request) 获取指定多版本对象。 - 复制多版本对象 obsClient.copyObject(CopyObjectRequest request) 为指定桶中的多版本对象创建一个副本。在单次操作中,可以创建最大5GB的对象副本。 - 恢复多版本归档存储对象 obsClient.restoreObject(RestoreObjectRequest request) 通过接口传入版本号,恢复多版本归档存储对象。 如果要下载归档存储对象,需要先将归档存储对象恢复。恢复归档存储对象的恢复选项可支持标准恢复、快速恢复。 - 列举多版本对象 obsClient.listVersions(ListVersionsRequest request) 列举指定桶内的部分或所有多版本对象的描述信息。还可以通过设置前缀、数量、起始位置等参数,返回符合您筛选条件的多版本对象信息。返回结果以多版本对象名的字典序排序。 ListVersionsSample 设置多版本对象权限 obsClient.setObjectAcl(SetObjectAclRequest request) 在上传多版本对象时,设置权限控制策略,也可以通过ACL操作API接口对已存在的对象更改或者获取ACL。 - 获取多版本对象权限 obsClient.getObjectAcl(GetObjectAclRequest request) 获取指定桶的获取多版本对象权限。 - 删除多版本对象 obsClient.deleteObject(DeleteObjectRequest request) 根据需要删除指定桶中的多版本对象,节省空间和成本。 - 批量删除多版本对象 obsClient.deleteObjects(DeleteObjectsRequest deleteRequest) 根据需要批量删除指定桶中的多个多版本对象,节省空间和成本。 批量删除对象用于将一个桶内的部分多版本对象一次性删除,删除后不可恢复。批量删除多版本对象要求返回结果里包含每个多版本对象的删除结果。 ListVersionsSample
  • 对象相关接口 对象相关接口如下表所示。 表3 对象相关接口概览 接口名 方法 功能描述 示例代码源代码 流式上传 obsClient.putObject(PutObjectRequest request) 通过流式上传方式将本地文件上传至OBS指定的位置,支持上传小于5GB的文件。待上传的文件可以是任何类型:文本文件、图片、视频等。 ObjectOperationsSample 文件上传 obsClient.putObject(PutObjectRequest request) 将本地文件直接通过Internet上传至OBS指定的桶中。待上传的文件可以是任何类型:文本文件、图片、视频等。 - 获取上传进度 PutObjectRequest.setProgressListener(ProgressListener progressListener) 获取指定对象的上传进度。 - 创建文件夹 obsClient.putObject(PutObjectRequest request) 在已创建的桶中新建一个文件夹,从而更方便的对存储在OBS中的数据进行分类管理。 CreateFolderSample 设置对象元数据 obsClient.setObjectMetadata(SetObjectMetadataRequest request) 在上传对象时设置对象属性。对象属性包含对象长度、对象MIME类型、对象MD5值(用于校验)、对象存储类别、对象自定义元数据。对象属性可以在多种上传方式下(流式上传、文件上传、分段上传),或复制对象时进行设置。 ObjectMetaSample 初始化分段上传任务 obsClient.initiateMultipartUpload(InitiateMultipartUploadRequest request) 使用分段上传方式传输数据前,必须先通知OBS初始化一个分段上传任务。该操作会返回一个OBS服务端创建的全局唯一标识(Upload ID),用于标识本次分段上传任务。 SimpleMultipartUploadSample 上传段 obsClient.uploadPart(UploadPartRequest request) 初始化分段上传任务后,通过分段上传任务的ID,上传段到指定桶中。 SimpleMultipartUploadSample 合并段 obsClient.completeMultipartUpload(CompleteMultipartUploadRequest request) 通过分段上传任务的ID和对应已上传的段信息(包括PartNumber和ETag),合并成一个完整的对象。 SimpleMultipartUploadSample 取消分段上传任务 obsClient.abortMultipartUpload(AbortMultipartUploadRequest request) 通过分段上传任务的ID,取消指定桶中的分段上传任务。 - 列举已上传的段 obsClient.listParts(ListPartsRequest request) 通过分段上传任务的ID,列举指定桶中已上传的段。 ConcurrentUploadPartSample 列举分段上传任务 obsClient.listMultipartUploads(ListMultipartUploadsRequest request) 列举指定桶中所有的初始化后还未合并或还未取消的分段上传任务。 - 设置对象生命周期 obsClient.putObject(PutObjectRequest request) OBS支持用户配置指定的规则,实现定时删除桶中的对象或者定时转换对象的存储类别,从而节省存储费用。此接口设置的对象过期时间,其优先级高于桶生命周期规则。 - 追加上传 obsClient.appendObject(AppendObjectRequest request) 对同一个对象追加数据内容。 - 断点续传上传 obsClient.uploadFile(UploadFileRequest request) 对分段上传的封装和加强,解决上传大文件时由于网络不稳定或程序崩溃导致上传失败的问题。 - 基于表单上传 obsClient.createPostSignature(PostSignatureRequest request) 使用HTML表单形式上传对象到指定桶中,对象最大不能超过5GB。 PostObjectSample 流式下载 obsClient.getObject(GetObjectRequest request) 根据需要通过流式下载将存储在OBS中的指定对象下载到本地。接口返回的ObsObject实例包含对象所在的桶、对象名、对象属性、对象输入流等内容,同时可以通过操作对象输入流将对象的内容读取到本地文件或者内存中。 DownloadSample 范围下载 obsClient.getObject(GetObjectRequest request) 如果只需要下载对象的其中一部分数据,可以使用范围下载,下载指定范围的数据。 - 获取下载进度 GetObjectRequest.setProgressListener(ProgressListener progressListener) 获取指定对象的下载进度。 - 限定条件下载 obsClient.getObject(GetObjectRequest request) 下载对象时,可以指定一个或多个限定条件,满足限定条件时则进行下载,否则返回异常码,下载对象失败。 - 重写响应头 obsClient.getObject(GetObjectRequest request) 下载对象时,可以重写HTTP/HTTPS中部分响应头的信息:Content-Type、Content-Language、Expires、Cache-Control、Content-Disposition、Content-Encoding。 - 获取自定义元数据 obsClient.getObject(GetObjectRequest request) 本接口可以在下载对象成功后返回对象的自定义元数据。 ObjectMetaSample 恢复归档存储对象 obsClient.restoreObject(RestoreObjectRequest request) 如果要下载归档存储对象,需要先将归档存储对象恢复。恢复归档存储对象的恢复选项可支持标准恢复、快速恢复。 RestoreObjectSample 断点续传下载 obsClient.downloadFile(DownloadFileRequest request) 对范围下载的封装和加强,解决下载大对象到本地时由于网络不稳定或程序崩溃导致下载失败的问题。 - 下载对象接口实现图片处理 obsClient.getObject(GetObjectRequest request) 下载图片文件时,通过传入图片处理参数对图片文件进行图片剪切、图片缩放、图片水印、格式转换等处理。 - 临时授权方式实现图片处理 obsClient.createTemporarySignature(TemporarySignatureRequest request) 通过临时授权方式传入图片处理参数,对图片文件进行图片剪切、图片缩放、图片水印、格式转换等处理。 - 设置对象元数据 obsClient.setObjectMetadata(SetObjectMetadataRequest request) 对指定桶中的对象发送HEAD请求,设置对象的元数据信息。 - 获取对象元数据 obsClient.getObjectMetadata(GetObjectMetadataRequest request) 对指定桶中的对象发送HEAD请求,获取对象的元数据信息。 - 设置对象ACLs obsClient.setObjectAcl(SetObjectAclRequest request) 在上传对象时设置权限控制策略,也可以通过ACL操作API接口对已存在的对象更改ACL 。 ObjectOperationsSample 获取对象ACLs obsClient.getObjectAcl(GetObjectAclRequest request) 通过接口获取指定桶中对象的ACL访问权限,返回信息包含指定对象的权限控制列表信息。 ObjectOperationsSample 列举对象 obsClient.listObjects(ListObjectsRequest request) 列举指定桶内的部分或所有对象的描述信息。还可以通过设置前缀、数量、起始位置等参数,返回符合筛选条件的对象信息。返回结果以对象名的字典序排序。 ListObjectsSample 删除对象 obsClient.deleteObject(DeleteObjectRequest request) 根据需要删除指定桶中的对象,节省空间和成本。 ObjectOperationsSample 批量删除对象 obsClient.deleteObjects(DeleteObjectsRequest deleteRequest) 根据需要批量删除指定桶中的多个对象,节省空间和成本。 批量删除对象用于将一个桶内的部分对象一次性删除,删除后不可恢复。批量删除对象要求返回结果里包含每个对象的删除结果。 DeleteObjectsSample 复制对象 obsClient.copyObject(CopyObjectRequest request) 为指定桶中的对象创建一个副本。在单次操作中,可以创建最大5GB的对象副本。 ObjectOperationsSample 分段复制 obsClient.copyPart(CopyPartRequest request) 初始化分段上传任务后,通过分段上传任务的ID,复制段到指定桶中。 ConcurrentCopyPartSample 判断对象是否存在 doesObjectExist(final GetObjectMetadataRequest request) 判断对象是否存在,返回的结果中HTTP状态码为200表明对象存在,否则返回404表明对象或桶不存在。 -
  • 并行文件系统相关接口 并行文件系统相关接口如下表所示。 表2 并行文件系统相关接口概览 接口名 方法 功能描述 示例代码源代码 创建并行文件系统 obsClient.createBucket(CreateBucketRequest request) 在当前账号按照用户指定的并行文件系统名称创建一个新并行文件系统,接口支持根据用户诉求,在创建并行文件系统的同时配置并行文件系统的区域及桶的访问权限等参数。 PFSBucketAndObjectOperationSample 列举并行文件系统 obsClient.listBuckets(ListBucketsRequest request) 列举当前账号下符合指定条件的并行文件系统。返回结果以文件系统名的字典序排列。 PFSBucketAndObjectOperationSample 列举并行文件系统内对象 obsClient.listObjects(final ListObjectsRequest request) 列举出指定并行文件系统里的对象。 PFSBucketAndObjectOperationSample 修改写对象 obsClient.modifyObject(ModifyObjectRequest request) 将指定并行文件系统内的一个对象从指定位置起修改为其他内容。 PFSBucketAndObjectOperationSample 重命名对象 obsClient.renameObject(RenameObjectRequest request) 重命名对象操作是指将指定并行文件系统内的一个对象重命名为其他对象名。 PFSBucketAndObjectOperationSample 截断对象 obsClient.truncateObject(TruncateObjectRequest request) 截断对象操作是指将指定并行文件系统内的一个对象截断到指定大小。 PFSBucketAndObjectOperationSample
  • 方式四:自行编译 Jar 包 您可以下载Java SDK源码,然后自行编译 Jar 包。使用本方式安装SDK前,请确保Java环境和Maven环境正确配置并能正常使用,详细步骤如下: 下载SDK源码并解压。 通过命令行进入源码解压目录。 运行如下命令 linux系统: mvn clean package -Dmaven.test.skip=true -f pom-java.xml Windows系统: mvn clean package "-Dmaven.test.skip=true" -f pom-java.xml 构建产物位于解压目录中的target目录下。 将生成的jar包放置于本地工程的依赖路径。
  • 代码化构建 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 version: 2.0 # 必须是2.0 steps: BUILD: - upload_artifact: inputs: path: "**/target/*.?ar" version: 2.1 name: packageName version: 2.0 # 必须是2.0 steps: BUILD: - upload_artifact: inputs: path: "**/target/*.?ar" version: 2.1 name: packageName custom_upload_path: /phoenix-sample-ci/ ignore_fail: true 表2 代码示例参数说明 参数 类型 说明 path string 填写构建结果所在路径。 构建包路径支持正则匹配,“**”递归遍历当前目录,“*”匹配0或者多个字符,“?”匹配一个字符。 系统文件分隔符使用“/”,路径不区分大小写。 举例说明: *.class:当前目录下匹配“.class”结尾的文件。 **/*.class:当前目录下递归匹配所有的“.class”结尾的文件。 test/a??.java:匹配“test”目录下以“a”开头后跟两个字符的java文件。 **/test/**/XYZ*:递归匹配父目录为“test”文件是“XYZ”开头的所有文件,比如“abc/test/def/ghi/XYZ123”。 version string 可选参数。 填写发布版本号。 不填写(推荐):以构建编号命名上传到发布库的文件存储目录名。 填写:可能会覆盖同名存储目录下的文件。 name string 可选参数。 填写构建生成的包名。 不填写(推荐):以文件原始名命名上传到发布库的文件名。 填写:上传多个文件时,可能会存在被覆盖的情况。 custom_upload_path string 可选参数。 填写自定义上传目录后,上传的软件包将上传至“自定义上传目录/版本号/软件包名”的目录下。 ignore_fail string 用于控制当前步骤执行失败后是否继续执行下一个步骤。 true:是。 为空:否。 图1 发布版本号及包名是否为空对上传的影响
  • 图形化构建 在配置构建步骤中,添加“上传软件包到软件发布库”构建步骤,参考表1配置参数。 当执行机选择Windows执行时,需添加“上传软件包到软件发布库(Windows环境)”构建步骤。 表1 上传软件包到软件发布库参数说明 参数 说明 步骤显示名称 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 构建包路径 填写构建结果所在路径。 构建包路径支持正则匹配,“**”递归遍历当前目录,“*”匹配0或者多个字符,“?”匹配一个字符。 系统文件分隔符使用“/”,路径不区分大小写。 举例说明: *.class:当前目录下匹配“.class”结尾的文件。 **/*.class:当前目录下递归匹配所有的“.class”结尾的文件。 test/a??.java:匹配“test”目录下以“a”开头后跟两个字符的java文件。 **/test/**/XYZ*:递归匹配父目录为“test”文件是“XYZ”开头的所有文件,比如“abc/test/def/ghi/XYZ123”。 发布版本号 可选参数。 配置当前构建任务生成的软件包上传到软件发布库中的目录名。 不指定(推荐):以构建编号命名上传到发布库的文件存储目录名。 指定:可能会覆盖同名存储目录下的文件。 包名 可选参数。 配置当前构建任务生成的软件包上传到软件发布库中的软件包名称。 不指定(推荐):以文件原始名命名上传到发布库的文件名。包名推荐设置为空,可以上传构建包路径匹配的所有文件。 指定:上传多个文件时,可能会存在被覆盖的情况。如果包名需要设置且存在多个文件上传的情况,推荐增加多个“上传软件包到软件发布库”的构建步骤。 自定义上传目录 可选参数。 填写自定义上传目录后,上传的软件包将上传至“自定义上传目录/版本号/软件包名”的目录下。 失败后是否继续运行 当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。
  • 操作场景 本节指导您基于Windows操作系统环境完成镜像文件快速导入,推荐使用Windows系统本地PC作为转换镜像格式和生成位表文件的环境。 Windows操作系统环境下,必须使用开源qemu-img工具进行镜像格式转换,qemu-img支持vhd、vmdk、qcow2、raw、vhdx、qcow、vdi或qed格式的镜像的相互转换,因此需要转换为raw格式,再使用CreateMF.jar工具生成位表文件。
  • 附1:qemu-img-hw常用命令 镜像文件格式转换:qemu-img-hw convert -p -O {目标镜像格式} {待转换镜像文件} {目标镜像文件} 上述命令中各参数对应的说明如下: -p:标识转换的进度条 -O:(必须是大写)后面的参数为转换出来的镜像格式 + 源镜像文件名称 + 目标镜像文件名称 示例:将qcow2格式转为zvhd2格式 qemu-img-hw convert -p -O zvhd2 test.qcow2 test.zvhd2 查询镜像文件信息:qemu-img-hw info {镜像文件} 示例:qemu-img-hw info test.zvhd2 查看帮助:qemu-img-hw -help
  • 附2:执行qemu-img-hw常见报错 问题描述: 执行qemu-img-hw命令时回显信息如下: ./qemu-img-hw: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./qemu-img-hw) 解决方法: 执行strings /lib64/libc.so.6 | grep GLIBC查看GLIBC版本,若由于版本过低造成,可安装高版本即可。依次执行下述命令: wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.15.tar.gz tar -xvf glibc-2.15.tar.gz tar -xvf glibc-ports-2.15.tar.gz mv glibc-ports-2.15 glibc-2.15/ports mkdir glibc-build-2.15 cd glibc-build-2.15 ../glibc-2.15/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin 此命令若报错“configure: error: no acceptable C compiler found in $PATH”,请先执行:yum -y install gcc make make install 问题描述: 执行qemu-img-hw命令时回显信息如下: ./qemu-img-hw: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 解决方法:请先执行命令yum install libaio
  • 步骤四:添加TXT记录集 添加TXT记录集为域名设置SPF记录,用于反垃圾邮件。 SPF是为了防范垃圾邮件的一种DNS记录类型,是TXT记录集的一种应用,用于登记某个域名拥有的用来外发邮件的所有IP地址。 按照SPF的格式再添加一条TXT类型的记录集,可以提高域名的信誉度,还可以防止垃圾邮件伪造域名的发件人发送垃圾邮件。 在“公网域名”页面的域名列表的“域名”列,单击域名的名称“example.com”。 进入“解析记录”页面。 在页面右上角,单击“添加记录集”。 在“添加记录集”页面,根据界面提示为域名“example.com”设置记录集参数。 主机记录:设置为空,表示解析的域名为主域名“example.com”。 如果待添加解析记录的域名为“@”,表示为空头域名,此时,将“主机记录”置为空即可。 类型:设置为TXT类型记录集。 值:设置为SPF记录,SPF记录的详细说明请参考相关介绍文档,本文不详细介绍。 在本操作中,SPF记录为“"v=spf1 include:spf.mailserver.com -all"”,表示采用的SPF版本为“spf1”,支持域名为“example.com”的邮箱服务器的邮件从“spf.mailserver.com”声明的地址发出的都是合法邮件,并非冒充的垃圾邮件。 其余参数取默认值,更多参数说明,请参见添加TXT类型记录集。 图5 设置TXT记录集参数 单击“确定”,完成记录集的添加。 您可以在域名对应的记录集列表中查看添加的记录集。当记录集的状态显示为“正常”时,表示记录集添加成功。
  • 步骤三:添加CNAME记录集 如果要实现通过域名“mail.example.com”登录Web邮箱,或者在邮件客户端(如Outlook,Foxmail等)中使用域名“mail.example.com”作为SMTP、IMAP以及POP服务器的地址,则需要为域名“example.com”分别添加对应的CNAME类型记录集。 是否支持通过Web邮箱方式登录邮箱由邮箱服务商决定。 SMTP、IMAP以及POP是指邮箱服务器支持的邮件传输协议。邮箱服务器支持的邮件传输协议由邮箱服务器的设置决定。 需要添加4条CNAME类型的记录集,记录集的关键参数如表1所示。 在“公网域名”页面的域名列表的“域名”列,单击域名的名称“example.com”。 进入“解析记录”页面。 在页面右上角,单击“添加记录集”。 在“添加记录集”页面,根据界面提示为域名“example.com”设置CNAME记录集参数。 主机记录:设置为“mail”,表示解析的域名为“mail.example.com”。 类型:设置为CNAME类型记录集。 值:设置为指向的邮箱地址“mailserver.com”。 其余参数取默认值,更多参数说明,请参见添加CNAME类型记录集。 图4 设置记录集参数 图4以第一条记录集为例进行说明,其余三条记录集仅在“主机记录”和“值”存在差异,详细取值以表1为准。 单击“确定”,完成记录集的添加。 您可以在域名对应的记录集列表中查看添加的记录集。当记录集的状态显示为“正常”时,表示记录集添加成功。 依次执行步骤1~步骤4完成其余三条记录集的添加。 关键参数“主机记录”和“值”以表1为准。
  • 前提条件 已经通过华为云的 域名注册服务 或第三方域名注册商完成域名“example.com”的注册。 如果域名“example.com”在中国大陆地区注册,需要完成域名实名认证审核。 已经购买邮箱服务器,并获取邮箱服务器的域名地址。 如果邮箱服务器在中国大陆地区部署,需要完成邮箱服务器域名和IP地址的备案。 如果在华为云购买邮箱服务器,则通过华为云的备案中心进行备案,详细内容请参见什么是备案。 如果在其他云服务商处购买邮箱服务器,则通过对应的云服务商进行备案。 规划邮箱解析记录配置数据,如表1所示。 表1 邮箱解析记录 记录集类型 主机记录 值 说明 MX - 5 mx01.mailserver.com 10 mx02.mailserver.com 邮箱服务器地址,通过邮箱服务商获取。 TXT - "v=spf1 include:spf.mailserver.com -all" 采用SPF记录防范垃圾邮件。 CNAME mail mailserver.com 通过域名“mail.example.com”登录邮箱。 CNAME smtp smtp.mailserver.com 使用域名“smtp.example.com”作为“smtp.mailserver.com”的地址。 CNAME imap imap.mailserver.com 使用域名“imap.example.com”作为“imap.mailserver.com”的地址。 CNAME pop pop.mailserver.com 使用域名“pop.example.com”作为“pop.mailserver.com”的地址。 在配置邮箱解析过程中如果遇到“与已有解析记录冲突”提示信息,请参考添加记录集时,为什么会提示“与已有解析记录冲突”?进行处理。
  • 步骤一:添加域名 配置邮箱解析,需要先将注册的域名“example.com”添加至云解析服务中。如果您的域名是通过华为云注册的,系统将自动添加域名至云解析服务,请跳过本步骤。 进入公网域名列表页面。 在页面右上角,单击“创建公网域名”。 一般情况下,华为云注册的域名,系统会自动将域名添加至公网域名列表中,可以直接进行下一步。如果未自动添加,则需手动创建。 如果您在创建公网域名时提示“该域名已被添加至其他账号的DNS中,您需要将域名找回至当前账号。”,可以通过“域名找回”功能将域名找回至用户当前账号。详细内容请参见找回公网域名。 在“创建公网域名”页面中,输入注册的域名“example.com”,将域名添加至云解析服务。 更多参数说明,请参见创建公网域名。 图2 创建公网域名 单击“确定”,完成公网域名“example.com”的创建。 创建完成后,您可以在“公网域名”页面查看新创建的域名信息。 如果提示“域名已经被其他租户创建。”,请参考找回域名。 单击域名名称,可以看到系统已经为您创建了SOA类型和NS类型的记录集。其中, SOA类型的记录集标识了对此域名具有最终解释权的主权威服务器。 NS类型的记录集标识了此域名的权威服务器。 您可以根据域名所在区域修改NS记录集的值,详细内容请参考华为云DNS对用户提供域名服务的DNS是什么?。
  • 步骤二:添加MX记录集 MX记录集用于指定域名对应的邮箱服务器地址,其值设置为购买的邮箱服务器的域名地址,由邮箱服务商提供。 在“公网域名”页面的域名列表的“域名”列,单击域名的名称“example.com”。 进入“解析记录”页面。 在页面右上角,单击“添加记录集”。 在“添加记录集”页面,根据界面提示为域名“example.com”设置记录集参数。 主机记录:设置为空,表示解析的域名为主域名“example.com”。 如果待添加解析记录的域名为“@”,表示为空头域名,此时,将“主机记录”置为空即可。 类型:设置为MX类型记录集。 值:设置为邮箱服务器地址,格式为“[优先级][邮箱服务器地址]”。 优先级:设置邮箱服务器接收邮件优先顺序,数值越小优先级越高。 邮箱服务器地址:邮箱服务商提供的域名地址。 例如,设置为: 5 mx01.mailserver.com 10 mx01.mailserver.com 其余参数取默认值,更多参数说明,请参见添加MX类型记录集。 图3 设置记录集参数 单击“确定”,完成记录集的添加。 您可以在域名对应的记录集列表中查看添加的记录集。当记录集的状态显示为“正常”时,表示记录集添加成功。
  • 操作场景 当您想要通过华为云的云解析服务为您的邮箱服务器提供解析服务,可以参考本操作为域名配置邮箱解析。 例如,搭建一个邮箱服务器,如果要实现通过mail.example.com登录邮箱,并使用域名作为SMTP、IMAP以及POP等类型邮件客户端的服务器地址,需要配置如下解析记录: MX:添加域名“example.com”到购买的邮箱服务器地址。 CNAME:为域名“example.com”添加4条CNAME记录集,用于实现通过域名“mail.example.com”登录邮箱,以及在邮件客户端(如Outlook,Foxmail等)中使用域名“mail.example.com”作为SMTP、IMAP以及POP服务器的地址。 TXT:为域名“example.com”添加TXT记录集,设置SPF记录,用于反垃圾邮件。 常见邮箱解析记录示例请参见常用邮箱的解析记录示例。您还可以通过快速添加邮箱解析功能配置如下常用邮箱的邮箱解析: 华为云 企业邮箱 阿里云企业邮箱 网易免费邮箱 网易企业邮箱 腾讯企业邮箱 为域名配置邮箱解析与邮箱服务器所在的账号和位置无关,仅需要获取邮箱服务器的域名地址。 未备案的域名可以正常解析邮箱,不受影响。
  • 概述 通过专线/VPN打通云下数据中心和华为云,云下数据中心服务器和华为云服务器就可以直接通信。但是基于安全因素考虑,云下服务器并不能通过专线/VPN直接访问云上DNS服务,云下服务器如果要访问云上业务内网域名,或者云上服务器使用华为云内网DNS要访问云下数据中心业务域名,则需要客户在云服务器中自主搭建DNS作为云上DNS和云下DNS中转,造成额外管理维护成本和可靠性风险。 华为云推出DNS解析器可以协助用户轻松实现混合云场景下云上云下业务互访诉求。 解析器功能目前已经在华北-乌兰察布一、西南-贵阳一、亚太-曼谷、亚太-新加坡、亚太-雅加达、中国-香港、广州-友好用户环境、拉美-圣保罗一、土耳其-伊斯坦布尔、非洲-约翰内斯堡、中东-利雅得区域上线。 目前解析器入站终端节点,出站终端节点均不支持DNSSEC功能,无法进行DNSSEC验证。 云上虚拟机DNS默认使用华为云内网DNS,不要修改为其他 DNS地址 ,否则转发规则将无法生效。
  • 使用场景 云下服务器访问云上业务域名,创建入站终端节点,在云下DNS服务器配置转发规则,将要访问的云上业务域名转发到入站终端节点IP。 详细内容请参见入站终端节点管理。 云上服务器访问云下业务域名,创建出站终端节点并配置转发规则,在转发规则指定要访问的云下业务域名,云下DNS服务器IP。华为云内网DNS会基于转发规则通过出站终端节点把相应域名转发到指定云下DNS服务器解析。 详细内容请参见出站终端节点管理。
  • 步骤二:为域名添加A记录集 域名创建完成后,需要为域名添加记录集,此处需要为域名添加A类型的记录集。 在“内网域名”页面的域名列表中,单击域名的名称“example.com”。 进入“解析记录”页面。 在页面右上角,单击“添加记录集”。 在“添加记录集”页面,根据界面提示为域名“example.com”设置A记录集参数。 主机记录:设置为空,表示解析的域名为主域名“example.com”。 类型:设置为A类型记录集。 值:设置为弹性云服务器的私有IP。 其余参数取默认值,更多参数说明,请参见添加A类型记录集。 表2 A类型记录集参数说明 参数 示例 说明 主机记录 www 解析域名的前缀。 例如创建的域名为“example.com”,其“主机记录”设置包括: www:用于网站解析,表示解析的域名为“www.example.com”。 空:用于网站解析,表示解析的域名为“example.com”。 主机记录置为空,还可用于为空头域名“@”添加解析。 abc:用于子域名解析,表示解析的域名为“example.com”的子域名“abc.example.com”。 mail:用于邮箱解析,表示解析的域名为“mail.example.com”。 *:用于泛解析,表示解析的域名为“*.example.com”,匹配“example.com”的所有子域名。 记录类型 A – 将域名指向IPv4地址 记录集的类型,此处为A类型。 添加记录集时,如果提示解析记录集已经存在,说明待添加的记录集与当前域名已添加的记录集存在限制关系或者冲突。 详细内容请参见为什么会提示解析记录集已经存在?。 TTL(秒) 5分钟,即300s。 解析记录在本地DNS服务器的缓存时间,以秒为单位。 默认值为“300秒”。取值范围为:1~2147483647 如果您的服务地址经常更换,建议TTL值设置相对小些,反之,建议设置相对大些。 更多TTL相关内容请参见什么是TTL值?。 记录值 192.168.12.2 192.168.12.3 域名对应的IPv4地址。 最多可以输入50个不重复地址,多个地址之间以换行符分隔。 标签 example_key1 example_value1 请您按需为解析记录绑定标签,标签可用来分类和标识资源。 描述 - 对解析记录的描述。 单击“确定”。 返回“解析记录”页面。 添加完成后,您可以在域名对应的记录集列表中查看已添加的记录集。当记录集的状态显示为“正常”时,表示记录集添加成功。
共100000条