前言
感谢尚硅谷
对象存储OSS
为了解决海量数据存储和弹性扩容,项目中我们采用云存储的解决方案,阿里云的OSS存储
阿里的技术在国内是顶级的,所以在国内很多公司都会放到阿里OSS中
当然,OSS是收费的,但是没有达到一定的规模是不收费的,而且收费也非常便宜
开通申请
1、打开网站:https://www.aliyun.com,登录/注册阿里云
2、最好在你的个人账户里充点钱,一两毛就行,要不然等会用不了会很尴尬
3、找到阿里的OSS
阿里云首页–>产品分类–>存储服务–>对象存储OSS
4、开通对象存储OSS
这个开通需要实名认证,它的简介很有意思
海量,安全,低成本,高可靠的云存储服务,提供99.9999999%的数据持久性,可以使用 RESTFUL API
5、收费标准
6、OSS管理控制台
1、首先创建Buckets,才能使用阿里云OSS,这个东西类似于建立文件夹
2、直接在控制台尝试传递文件
点击文件,会出现以上内容,有一个图片的下载地址,访问此网址即可下载
通过Java代码向OSS上传代码
1、创建OSS的许可证,阿里云会颁发ID和密钥
2、OSS文档查看
https://help.aliyun.com/document_detail/32008.html?spm=a2c4g.11186623.6.806.5f3f1c62Jakz63
3、根据文档开始使用,首先安装依赖
1 2 3 4 5
| <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.10.2</version> </dependency>
|
4、创建存储空间
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
String accessKeyId = "<yourAccessKeyId>"; String accessKeySecret = "<yourAccessKeySecret>"; String bucketName = "<yourBucketName>";
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ossClient.createBucket(bucketName);
ossClient.shutdown();
|
5、上传
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
String accessKeyId = "<yourAccessKeyId>"; String accessKeySecret = "<yourAccessKeySecret>"; String bucketName = "<yourBucketName>";
String objectName = "<yourObjectName>";
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
String content = "Hello OSS"; ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(content.getBytes()));
ossClient.shutdown();
|
6、下载
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
String accessKeyId = "<yourAccessKeyId>"; String accessKeySecret = "<yourAccessKeySecret>"; String bucketName = "<yourBucketName>";
String objectName = "<yourObjectName>";
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
OSSObject ossObject = ossClient.getObject(bucketName, objectName);
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.shutdown();
|
7、列举文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
String accessKeyId = "<yourAccessKeyId>"; String accessKeySecret = "<yourAccessKeySecret>"; String bucketName = "<yourBucketName>";
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ObjectListing objectListing = ossClient.listObjects(bucketName);
for (OSSObjectSummary objectSummary : objectListing.getObjectSummaries()) { System.out.println(" - " + objectSummary.getKey() + " " + "(size = " + objectSummary.getSize() + ")"); }
ossClient.shutdown();
|
8、删除
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
String accessKeyId = "<yourAccessKeyId>"; String accessKeySecret = "<yourAccessKeySecret>"; String bucketName = "<yourBucketName>";
String objectName = "<yourObjectName>";
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ossClient.deleteObject(bucketName, objectName);
ossClient.shutdown();
|