全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多
对象存储 OSS

快速入门

更新时间:2018-05-27 23:07:35

请确认您已经熟悉OSS的基本概念,如存储空间(Bucket)、文件/对象(Object)、访问域名(Endpoint)、访问密钥(AccessKey,包括AccessKeyId和AccessKeySecret)等。

本节您将看到如何快速使用OSS Java SDK完成常见操作,如创建存储空间、上传文件、下载文件等。

初始化OSSClient

向OSS发送HTTP请求之前,必须通过创建一个OSSClient实例来初始化OSSClient。以下代码用于创建一个OSSClient实例:

  1. // endpoint以杭州为例,其它region请按实际情况填写。
  2. String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
  3. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. String accessKeyId = "<yourAccessKeyId>";
  5. String accessKeySecret = "<yourAccessKeySecret>";
  6. // 创建OSSClient实例。
  7. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
  8. // 使用访问OSS。
  9. // 关闭ossClient。
  10. ossClient.shutdown();

OSSClient初始化详情请参见初始化

创建存储空间

存储空间是OSS全局命名空间,相当于数据的容器,可以存储若干文件。以下代码用于新建一个存储空间:

  1. ossClient.createBucket("<yourBucketName>");

存储空间的命名规范,请参见基本概念中的命名规范。创建存储空间详情,请参见管理存储空间

上传文件

以下代码用于上传文件至OSS:

  1. String content = "Hello OSS";
  2. ossClient.putObject("<yourBucketName>", "<yourObjectName>", new ByteArrayInputStream(content.getBytes()));

上传文件详情请参见上传文件

下载文件

以下代码用于获取Object的文本内容:

  1. //调用ossClient.getObject返回一个OSSObject实例,该实例包含文件内容及其元信息(meta)。
  2. OSSObject ossObject = ossClient.getObject("<yourBucketName>", "<yourObjectName>");
  3. //调用ossObject.getObjectContent获取文件输入流,可读取此输入流获取其内容。
  4. InputStream content = ossObject.getObjectContent();
  5. if (content != null) {
  6. BufferedReader reader = new BufferedReader(new InputStreamReader(content));
  7. while (true) {
  8. String line = reader.readLine();
  9. if (line == null) break;
  10. System.out.println("\n" + line);
  11. }
  12. //数据读取完成后,获取的流一定要显示close,否则会造成资源泄露。
  13. content.close();
  14. }

下载文件详情请参见下载文件

列举文件

以下代码用于列举指定存储空间下的文档。默认列举100个文件。

  1. //ossClient.listObjects返回ObjectListing实例,包含此次listObject请求的返回结果。
  2. ObjectListing objectListing = ossClient.listObjects("<yourBucketName>");
  3. //objectListing.getObjectSummaries获取所有Object的描述信息。
  4. for (OSSObjectSummary objectSummary : objectListing.getObjectSummaries()) {
  5. System.out.println(" - " + objectSummary.getKey() + " " +
  6. "(size = " + objectSummary.getSize() + ")");
  7. }

列举功能详情请参见管理文件中的列出存储空间中的文件。

删除文件

以下代码用于删除指定文件:

  1. ossClient.deleteObject("<yourBucketName>", "<yourObjectName>");

删除文件完整代码请参见GitHub

本文导读目录