开发者社区> 问答> 正文

Java-SDK之如何实现快速入门?

请确认您已经熟悉 OSS的基本概念,如Bucket、Object、Endpoint、AccessKeyId和AccessKeySecret等。
本节您将看到如何快速使用OSS Java SDK,完成进行常见操作,如创建存储空间、上传文件、下载文件等。

初始化OSSClient


向OSS发送任一HTTP请求之前,必须先创建一个OSSClient实例: // endpoint以杭州为例,其它region请按实际情况填写
String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
// 创建OSSClient实例
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
// 使用访问OSS
// 关闭ossClient
ossClient.shutdown();


提示:
  • 更多OSSClient初始化的内容请参考初始化


创建Bucket


存储空间(Bucket)是OSS全局命名空间,相当于数据的容器,可以存储若干文件(Object)。以下代码展示如何 新建一个Bucket:
  1. [backcolor=transparent]ossClient[backcolor=transparent].[backcolor=transparent]createBucket[backcolor=transparent]([backcolor=transparent]"<bucketName>"[backcolor=transparent]);

提示:


上传Object


以下代码展示如何上传文件(object)至OSS: String content = "Hello OSS";
// key是文件名
ossClient.putObject("<bucketName>", "<key>", new ByteArrayInputStream(content.getBytes()));


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


下载Object


以下代码展示如何获取Object的文本内容: // key是文件名
OSSObject ossObject = ossClient.getObject("<bucketName>", "<key>"));
InputStream content = ossObject.getObjectContent();
if (content != null) {
    BufferedReader reader = new BufferedReader(new InputStreamReader(content));
    while (true) {
        String line = reader.readLine();
        if (line == null) break;
        System.out.println("\n" + line);
    }
    content.close();
}


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


列举Object


当完成一系列上传Object操作后,可能需要查看Bucket下包含哪些Object。以下代码展示如何列举指定Bucket下的Object: ObjectListing objectListing = ossClient.listObjects("<bucketName>");
for (OSSObjectSummary objectSummary : objectListing.getObjectSummaries()) {
    System.out.println(" - " + objectSummary.getKey() + "  " +
            "(size = " + objectSummary.getSize() + ")");
}


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

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


删除Object


以下代码展示如何删除指定Object: // key是文件名
ossClient.deleteObject("<bucketName>", "<key>")


提示:
  • OSS Java SDK[backcolor=transparent]操作成功完成时,没有异常抛出,返回值有效;抛出异常说明操作失败,此时返回的数据无效;
  • 完整代码请参考:GitHub

展开
收起
青衫无名 2017-10-18 10:38:32 1757 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
从 SDK 到编解码:视频直播架构解析 立即下载
跨平台的云服务SDK需要什么 立即下载
一个跨平台的云服务SDK需要什么 立即下载