阿里雲對象存儲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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM