全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
对象存储 OSS

快速入门

更新时间:2017-07-12 09:13:39

请确认您已经熟悉OSS的基本概念,如Bucket、Object、Endpoint、AccessKeyId和AccessKeySecret等。

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

初始化OSSClient

向OSS发送任一HTTP请求之前,必须先创建一个OSSClient实例:

  1. // endpoint以杭州为例,其它region请按实际情况填写
  2. String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
  3. // 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建
  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初始化的内容请参考初始化

创建Bucket

存储空间(Bucket)是OSS全局命名空间,相当于数据的容器,可以存储若干文件(Object)。以下代码展示如何新建一个Bucket:

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

提示:

上传Object

以下代码展示如何上传文件(object)至OSS:

  1. String content = "Hello OSS";
  2. // key是文件名
  3. ossClient.putObject("<bucketName>", "<key>", new ByteArrayInputStream(content.getBytes()));

提示:

  • Java SDK通过InputStream上传Object至OSS。
  • 更多上传Object的信息,请参见上传文件

下载Object

以下代码展示如何获取Object的文本内容:

  1. // key是文件名
  2. OSSObject ossObject = ossClient.getObject("<bucketName>", "<key>"));
  3. InputStream content = ossObject.getObjectContent();
  4. if (content != null) {
  5. BufferedReader reader = new BufferedReader(new InputStreamReader(content));
  6. while (true) {
  7. String line = reader.readLine();
  8. if (line == null) break;
  9. System.out.println("\n" + line);
  10. }
  11. content.close();
  12. }

提示:

  • 调用OSSClient.GetObject返回一个OSSObject实例,该实例包含文件内容及其元信息(meta)。
  • 调用OSSObject.GetObjectContent获取文件输入流,可读取此输入流获取其内容,用完之后关闭请这个流
  • 更多下载Object的信息,请参见下载文件

列举Object

当完成一系列上传Object操作后,可能需要查看Bucket下包含哪些Object。以下代码展示如何列举指定Bucket下的Object:

  1. ObjectListing objectListing = ossClient.listObjects("<bucketName>");
  2. for (OSSObjectSummary objectSummary : objectListing.getObjectSummaries()) {
  3. System.out.println(" - " + objectSummary.getKey() + " " +
  4. "(size = " + objectSummary.getSize() + ")");
  5. }

调用OSSClient#listObjects返回ObjectListing实例,该实例包含此次listObject请求的返回结果,可通过ObjetListing#getObjectSummaries获取所有Object的描述信息。

提示:

  • 上面的代码默认列举100个object。
  • 更丰富的列举功能,请参见管理文件中的列出存储空间中的文件

删除Object

以下代码展示如何删除指定Object:

  1. // key是文件名
  2. ossClient.deleteObject("<bucketName>", "<key>")

提示:

  • OSS Java SDK操作成功完成时,没有异常抛出,返回值有效;抛出异常说明操作失败,此时返回的数据无效
  • 完整代码请参考:GitHub
本文导读目录