【網絡】什么是S3 協議和產生背景


目錄

簡要

詳細

背景

產生

如何使用

擴展知識

Amazon S3是什么?

 


簡要

S3 協議:

對象存儲協議

產生:

Amazon Simple Storage Service (簡稱 Amazon S3) 是一個公開的雲存儲服務,Web 應用程序開發人員可以使用它存儲數字資產,包括圖片、視頻、音樂和文檔。S3 提供一個 RESTful API 以編程方式實現與該服務的交互。

Amazon 是最早提供對象存儲服務 的廠商,制定文件存儲相關的業內標准,推出S3協議標准

目前市面上主流的存儲廠商都支持S3協議接口,比如華為、華三、戴爾、元核雲等。

鏈接:https://www.zhihu.com/question/343713732/answer/809092629
 

詳細

 

背景

 

在互聯網發展的今天,近乎所有的雲廠商都提供「對象存儲服務」。一種海量、安全、低成本、高可靠的雲存儲服務,適合存放任意類型的文件。容量和處理能力彈性擴展,多種存儲類型供選擇,全面優化存儲成本。

沒有S3之前,使用某個廠商的雲產品時,我們需要引如對應廠商的SDK,用他們的接口訪問該廠商的雲。

如下提供了幾家廠商接口 SDK 上傳實例:

阿里雲

//Endpoint以杭州為例,其它Region請按實際情況填寫。
String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";String accessKeyId = "";String accessKeySecret = "";// 創建OSSClient實例。OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);// 創建PutObjectRequest對象。String content = "Hello OSS";PutObjectRequest putObjectRequest = new PutObjectRequest("", "", new ByteArrayInputStream(content.getBytes()));// 上傳字符串。ossClient.putObject(putObjectRequest);// 關閉OSSClient。ossClient.shutdown();

華為雲

String endPoint = "https://your-endpoint";String ak = "*** Provide your Access Key ***";String sk = "*** Provide your Secret Key ***";// 創建ObsClient實例ObsClient obsClient = new ObsClient(ak, sk, endPoint);obsClient.putObject("bucketname", "objectname", new File("localfile")); // localfile為待上傳的本地文件路徑,需要指定到具體的文件名

七牛雲

Configuration cfg = new Configuration(Region.region0());UploadManager uploadManager = new UploadManager(cfg);String accessKey = "your access key";String secretKey = "your secret key";String localFilePath = "/home/qiniu/test.png";String key = null;Auth auth = Auth.create(accessKey, secretKey);String upToken = auth.uploadToken(bucket);Response response = uploadManager.put(localFilePath, key, upToken);

 

當我們同時接入的雲廠商較多時,管理和接口水平遷移就會要很大的麻煩。所以需要統一的一個標准規范所有廠商,以解決這個問題。

 

產生

解決方案:Amazon S3 協議


Amazon 是最早提供對象存儲服務 的廠商,制定文件存儲相關的業內標准,這意味着只需要實現 S3 協議即可接入兼容此協議的文件存儲廠商和中間件。當然 S3 協議不僅僅是技術實現要求標准,對於可用性等都有具體的要求。

就這樣S3協議誕生了。

 

兼容 S3 協議國內雲廠商

839e7160bb1eec9a765383829854c9a6.png

 

如何使用

  • 引入依賴。引入此依賴,無需在引入雲廠商 SDK
    com.pig4cloud.plugin    oss-spring-boot-starter    0.0.1
  • 配置文件存儲
oss:  path-style-access: false    #請求路徑是否 XXX/{bucketName}  endpoint: s3-cn-east-1.qiniucs.com  access-key: xxx    # 雲廠商提供的key  secret-key: xxx    # 雲廠商提供的密鑰  bucketName: pig4cloud     # 上文創建的桶名稱
  • 操作
@Autowireprivate final OssTemplate ossTemplate;ossTemplate.putObject(CommonConstants.BUCKET_NAME, fileName, file.getInputStream());

參考:

《aws s3 bucket下 創建文件夾_S3文件存儲協議的Spring Boot如何實現》

https://blog.csdn.net/weixin_39680609/article/details/112127468?spm=1001.2014.3001.5502

擴展知識

Amazon S3是什么?

1.S3概念

Simple Storage Service(s3),簡單存儲服務,是一個公開的雲存儲服務,Web 應用程序開發人員可以使用它存儲數字資產,包括圖片、視頻、音樂和文檔。S3 提供一個 RESTful API 以編程方式實現與該服務的交互。,目前市面上主流的存儲廠商都支持S3協議接口,比如華為、華三、戴爾、元核雲等。

Amazon S3 提供了一個簡單 Web 服務接口,可用於隨時在 Web 上的任何位置存儲和檢索任何數量的數據。此服務讓所有開發人員都能訪問同一個具備高擴展性、可靠性、安全性和快速價廉的數據存儲基礎設施。

簡單地說,S3的作用就是做數據存儲。

2.S3主要分類

S3的數據存儲結構分為兩層,第一層為Bucket,第二層為Object。

3.何為Bucket?何為Object

Object存儲於Bucket中。S3可以創建多個Bucket,每個Bucket中可以存儲多個Object。所以說Bucket就像文件夾,而Object更像文件中的文件。而亞馬遜的S3中的Bucket是不允許有Bucket,不過可以用Object來模擬多級目錄這種。



鏈接:https://www.zhihu.com/question/343713732/answer/1443277985
 


免責聲明!

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



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