请确认您已经熟悉
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初始化的内容请参考初始化。
提示:
String content = "Hello OSS";
// key是文件名
ossClient.putObject("<bucketName>", "<key>", new ByteArrayInputStream(content.getBytes()));
提示:
- Java SDK通过InputStream上传Object至OSS。
- 更多上传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的信息,请参见下载文件。
ObjectListing objectListing = ossClient.listObjects("<bucketName>");
for (OSSObjectSummary objectSummary : objectListing.getObjectSummaries()) {
System.out.println(" - " + objectSummary.getKey() + " " +
"(size = " + objectSummary.getSize() + ")");
}
提示:
- 上面的代码默认列举100个object。
- 更丰富的列举功能,请参见管理文件中的列出存储空间中的文件。
// key是文件名
ossClient.deleteObject("<bucketName>", "<key>")
提示:
- OSS Java SDK[backcolor=transparent]操作成功完成时,没有异常抛出,返回值有效;抛出异常说明操作失败,此时返回的数据无效;
- 完整代码请参考:GitHub。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。