阿里云对象存储OSS入门使用

数据,文件的存储:

  • 数据(MySQL)
  • 数据(MySQL)+ 文件(本地:IO流)
  • 数据(MySQL)+ 缓存(Redis)+文件(服务器集群上,fastDFS(集群),Hdfs(大数据))
  • 数据(MySQL)+ 缓存(Redis)+文件(OSS)

OSS 就是为了解决海量数据存储和弹性扩容,我们就可以采用阿里云OSS。

1、开通服务(免费开通)

 

 

 

 2、Bucket 库

  1. 点击创建Bucket
  2. 填写Bucket名称及区域
    1. 注:我这里区域选的是杭州,因为当时买服务器的时候,我是选的杭州区域,赠送的OSS包月资源包,当然也可以按流量计费,个人测试的话几块钱可以搞定。

 

 3、注意:使用子权限——安全

  1. 点击访问控制
  2. 创建用户
  3. 创建用户组
  4. 用户组权限设置
  5. 将用户添加到用户组
  6. 保存账户信息

 

 

 

 

 

 

 

 4、测试API

  1. 找到官方文档
  2. 测试

 

 

 

 

 1 package com.coding.aliyun;
 2 
 3 import com.aliyun.oss.OSS;
 4 import com.aliyun.oss.OSSClientBuilder;
 5 import com.aliyun.oss.model.CannedAccessControlList;
 6 import com.aliyun.oss.model.GetObjectRequest;
 7 import com.aliyun.oss.model.ObjectMetadata;
 8 import org.junit.Test;
 9 
10 import java.io.*;
11 
12 // 详细步骤请参照官方文档,详细步骤请参照官方文档,详细步骤请参照官方文档
13 public class OSSTest {
14     // Endpoint以杭州为例,其它Region请按实际情况填写。
15     String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
16     // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
17     String accessKeyId = "LTAI4Fcy4XxxxxxQR4";
18     String accessKeySecret = "spI0CUXTDxxxxxxxYsf4lmIaUdrIu";
19     String bucketName = "vin955";
20 
23     @Test
24     public void testCreate(){
25         // 创建OSSClient实例。
26         OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
27 
28         boolean exists = ossClient.doesBucketExist(bucketName);
29 
30         if (exists == false) { //判定是否存在此存储空间
31             // 创建存储空间。
32             ossClient.createBucket(bucketName);
33         }
34 
35         // 设置存储空间的访问权限为私有。
36         ossClient.setBucketAcl(bucketName, CannedAccessControlList.PublicRead);
37 
38         // 关闭OSSClient。
39         ossClient.shutdown();
40     }
41 
42     @Test
43     public void testCreate2(){
44         // 创建OSSClient实例。
45         OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
46 
47         // 上传文件流。
48         InputStream inputStream = null;
49         try {
50             inputStream = new FileInputStream("C:\\Users\\heng\\Desktop\\ava.png");
51         } catch (FileNotFoundException e) {
52             e.printStackTrace();
53         }
54 
55         ossClient.putObject(bucketName, "ava/aaa.png", inputStream);
56 
57         // 关闭OSSClient。
58         ossClient.shutdown();
59     }
60 
63     @Test
64     public void testCreate3() throws IOException {
65         // 创建OSSClient实例。
66         OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
67 
68         String objectName = "ava/aaa.png";
69 
70         // ossObject包含文件所在的存储空间名称、文件名称、文件元信息以及一个输入流。
71 //        OSSObject ossObject = ossClient.getObject(bucketName, objectName);
72         ObjectMetadata ossObject = ossClient.getObject(new GetObjectRequest(bucketName, objectName),new File("a.png"));
73 
74 
75         // 关闭OSSClient。
76         ossClient.shutdown();
77     }
78 
79 
80     @Test
81     public void testCreate4() throws IOException {
82         // 创建OSSClient实例。
83         OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
84 
85 
86         String objectName = "ava/aaa.png";
87         // 删除文件。如需删除文件夹,请将ObjectName设置为对应的文件夹名称。如果文件夹非空,则需要将文件夹下的所有object删除后才能删除该文件夹。
88         ossClient.deleteObject(bucketName, objectName);
89 
90         ossClient.shutdown();
91     }
92 
93 }

 

posted @ 2020-04-17 03:01  执笔人生  阅读(2095)  评论(0编辑  收藏  举报