全部产品
阿里云办公

快速入门

更新时间:2018-08-15 21:51:45

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

示例工程

OSS Java SDK提供了基于Maven和Ant的示例工程。您可以在本地设备上编译和运行示例工程,也可以以示例工程为基础开发您的应用。工程的编译和运行方法,请参见工程目录下的README.md。

创建存储空间

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

  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. String bucketName = "<yourBucketName>";
  7. // 创建OSSClient实例。
  8. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
  9. // 创建存储空间。
  10. ossClient.createBucket(bucketName);
  11. // 关闭OSSClient。
  12. ossClient.shutdown();

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

上传文件

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

  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. String bucketName = "<yourBucketName>";
  7. String objectName = "<yourObjectName>";
  8. // 创建OSSClient实例。
  9. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
  10. // 上传文件。
  11. String content = "Hello OSS";
  12. ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(content.getBytes()));
  13. // 关闭OSSClient。
  14. ossClient.shutdown();

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

下载文件

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

  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. String bucketName = "<yourBucketName>";
  7. String objectName = "<yourObjectName>";
  8. // 创建OSSClient实例。
  9. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
  10. // 调用ossClient.getObject返回一个OSSObject实例,该实例包含文件内容及文件元信息。
  11. OSSObject ossObject = ossClient.getObject(bucketName, objectName);
  12. // 调用ossObject.getObjectContent获取文件输入流,可读取此输入流获取其内容。
  13. InputStream content = ossObject.getObjectContent();
  14. if (content != null) {
  15. BufferedReader reader = new BufferedReader(new InputStreamReader(content));
  16. while (true) {
  17. String line = reader.readLine();
  18. if (line == null) break;
  19. System.out.println("\n" + line);
  20. }
  21. // 数据读取完成后,获取的流必须关闭,否则会造成连接泄漏,导致请求无连接可用,程序无法正常工作。
  22. content.close();
  23. }
  24. // 关闭OSSClient。
  25. ossClient.shutdown();

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

列举文件

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

  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. String bucketName = "<yourBucketName>";
  7. // 创建OSSClient实例。
  8. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
  9. // ossClient.listObjects返回ObjectListing实例,包含此次listObject请求的返回结果。
  10. ObjectListing objectListing = ossClient.listObjects(bucketName);
  11. // objectListing.getObjectSummaries获取所有文件的描述信息。
  12. for (OSSObjectSummary objectSummary : objectListing.getObjectSummaries()) {
  13. System.out.println(" - " + objectSummary.getKey() + " " +
  14. "(size = " + objectSummary.getSize() + ")");
  15. }
  16. // 关闭OSSClient。
  17. ossClient.shutdown();

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

删除文件

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

  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. String bucketName = "<yourBucketName>";
  7. String objectName = "<yourObjectName>";
  8. // 创建OSSClient实例。
  9. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
  10. // 删除文件。
  11. ossClient.deleteObject(bucketName, objectName);
  12. // 关闭OSSClient。
  13. ossClient.shutdown();

删除文件详情请参见管理文件中的删除文件。删除文件完整代码请参见GitHub

本文导读目录