一 簡介
隨著航海征程的推進(jìn)幔睬,喬巴的背包是越來越鼓赋咽,也越來越大了旧噪。看著輕裝上陣的伙伴們脓匿,它的內(nèi)心是復(fù)雜的淘钟。
喬巴 OS :我也想找個(gè)地方儲(chǔ)存一下我的背包,可是我又擔(dān)心背包里面的內(nèi)容陪毡,被人竊取了可怎么好米母?
針對(duì)喬巴的需求,QingStor 對(duì)象存儲(chǔ)提供了一套完整的解決方案毡琉。既能滿足你多種多樣的數(shù)據(jù)存取的需求铁瞒,同時(shí),還能確保你的數(shù)據(jù)安全桅滋。
本文中用到的相關(guān)名詞有:
名詞 | 釋義 |
---|---|
密鑰 | 用于解密加密數(shù)據(jù) |
MD5 | 用于確保密鑰傳輸完整一致的算法 |
客戶端加密 | 在上傳數(shù)據(jù)前完成加密 |
服務(wù)端加密 | 上傳數(shù)據(jù)后慧耍,服務(wù)端對(duì)數(shù)據(jù)進(jìn)行加密 |
對(duì)象 | 用戶數(shù)據(jù)的統(tǒng)稱 |
源對(duì)象 | 上傳的原始對(duì)象 |
目標(biāo)對(duì)象 | 拷貝或移動(dòng)后的對(duì)象 |
SSL協(xié)議 | 確保網(wǎng)絡(luò)通信安全及數(shù)據(jù)完整的協(xié)議 |
二 什么是加密
QingStor 對(duì)象存儲(chǔ)提供怎樣的方案,來消除喬巴的擔(dān)憂呢丐谋?我們先來看看 存/取 數(shù)據(jù)的流程:
通過上圖芍碧,我們可以知道,喬巴要將背包存起來号俐,首先需要將背包運(yùn)送到存儲(chǔ)地點(diǎn)(QingStor 對(duì)象存儲(chǔ))泌豆。
當(dāng)前已經(jīng)有比較成熟的做法用來保障數(shù)據(jù)在傳輸過程中的安全,也就是通用的SSL協(xié)議吏饿,這里不做詳細(xì)說明了踪危。
除此之外,喬巴也可以給自己的背包加個(gè)鎖猪落,即:客戶端加密贞远。這部分操作,是由喬巴自發(fā)完成并監(jiān)管的许布。這里也不做具體說明兴革。
等背包運(yùn)輸?shù)?QingStor 了,QingStor 再對(duì)背包進(jìn)行加密蜜唾,這個(gè)就是服務(wù)端的數(shù)據(jù)加密杂曲。
為了消除喬巴的擔(dān)憂,QingStor 對(duì)象存儲(chǔ)提供了一套完整的解決方案: SSL 協(xié)議 + 服務(wù)端數(shù)據(jù)加密袁余。
具體怎么做的呢擎勘?下面我們來詳細(xì)說一下整個(gè)的加密/解密過程吧。好期待哦颖榜!
2.1 加密過程
喬巴現(xiàn)在想把背包(數(shù)據(jù))交由 QingStor 對(duì)象存儲(chǔ)棚饵,那么整個(gè)過程如下:
- 喬巴在自己的背包上貼上密鑰煤裙,根據(jù)密鑰生成的 MD5 值,和加密算法等標(biāo)簽噪漾。并保留這些信息硼砰。
- 喬巴將貼有這些標(biāo)簽的背包,交給 QingStor 對(duì)象存儲(chǔ)欣硼。
- QingStor 在收到喬巴提交的背包后题翰,先取下密鑰,計(jì)算出密鑰的 MD5 值
- QingStor 取下喬巴背包上的 MD5 值诈胜,與計(jì)算出的 MD5 值進(jìn)行比對(duì)豹障,以確認(rèn)密鑰在提交過程中沒有被修改。
- 如果 QingStor 發(fā)現(xiàn) MD5 值不一致了焦匈,提醒喬巴血公,背包內(nèi)容可能會(huì)被竊取,需重新對(duì)背包貼標(biāo)簽缓熟,并再次提交
- 如果 QingStor 發(fā)現(xiàn)MD5 值一致時(shí)累魔,說明密鑰沒有被修改,背包提交過程中是安全的荚虚,這個(gè)時(shí)候從背包上取下加密算法薛夜,對(duì)背包里面的數(shù)據(jù)進(jìn)行加密
- 為了確保背包里面的數(shù)據(jù)僅喬巴一個(gè)人可以獲取,在加密完成后版述,QingStor 丟棄背包上的密鑰,僅保留根據(jù)密鑰計(jì)算出來的MD5值寞冯,用于取數(shù)據(jù)時(shí)的認(rèn)證渴析。
至此,喬巴就可以拿著加密信息離開了吮龄。
2.2 解密過程
一段時(shí)間后俭茧,喬巴要從 QingStor 取回背包了,那么整個(gè)過程又是怎樣的呢漓帚?
- 喬巴提出取數(shù)據(jù)的申請(qǐng)母债,并在申請(qǐng)里面提交當(dāng)時(shí)存儲(chǔ)背包時(shí)的標(biāo)簽:密鑰,根據(jù)密鑰生成的 MD5 值尝抖,和加密算法給 QingStor
- QingStor 收到喬巴提交的申請(qǐng)后毡们,先取下密鑰,計(jì)算出 MD5 值
- QingStor 再取下喬巴取包申請(qǐng)上的 MD5 值昧辽,與計(jì)算出的 MD5 進(jìn)行比對(duì)衙熔,以確認(rèn)密鑰在提交過程中沒有被修改
- 若 QingStor 發(fā)現(xiàn)兩個(gè)MD5值不一致,提醒喬巴搅荞,根據(jù)約定红氯,你這個(gè)背包取不了框咙,需重新回去找找密鑰,再次提交申請(qǐng)啊
- 若 QingStor 發(fā)現(xiàn)兩個(gè) MD5 值一致痢甘,說明這個(gè)申請(qǐng)是合法的
- QingStor 用喬巴提交的密鑰將背包數(shù)據(jù)進(jìn)行數(shù)據(jù)
- QingStor 將解密后的背包返回給喬巴
至此喇嘱,喬巴就可以拿到自己的原始背包了。
三 如何使用加密
喬巴:也就是說我只要保存好我的密鑰就行了塞栅,是么者铜?
QingStor:是的呢,密鑰可要保存好哦构蹬,弄丟了王暗,背包里面的東西就誰也不能獲取到了,包括你自己哦庄敛。
喬巴:果然是夠安全了俗壹。那我們就開始來辦手續(xù)吧。
3.1 加密請(qǐng)求頭
根據(jù)前文提到的藻烤,我們知道绷雏,需要給喬巴的背包貼上三個(gè)標(biāo)簽以實(shí)現(xiàn)對(duì)背包的加密。那么這個(gè)標(biāo)簽要怎么寫呢怖亭?內(nèi)容格式如下:
請(qǐng)求頭 | 類型 | 描述 |
---|---|---|
x-qs-encryption-customer-algorithm | String | 用戶的指定加密算法 |
x-qs-encryption-customer-key | String | 用戶提供的密鑰 |
x-qs-encryption-customer-key-MD5 | String | 用戶提供的密鑰的 MD5 |
備注:
- QingStor 對(duì)象存儲(chǔ)目前支持的加密算法僅有 AES256涎显。
- QingStor 對(duì)象存儲(chǔ)要求密鑰的明文必須具有32個(gè)字節(jié)長度。且兴猩,密鑰必須進(jìn)行 Base64 編碼處理
- 為了確認(rèn)密鑰在傳輸過程中的完整性期吓,這里也需要用戶提供原始密鑰的 MD5 值,且該 MD5 值也必須進(jìn)行 Base64 編碼處理倾芝。
標(biāo)簽貼好了讨勤,那么如何提交請(qǐng)求呢?QingStor 對(duì)象存儲(chǔ)提供多種API晨另,用以滿足用戶的多種請(qǐng)求類型潭千。詳細(xì)內(nèi)容如下:
3.2 基礎(chǔ)操作
3.2.1 GET Object
若喬巴想從指定的存儲(chǔ)空間,獲取之前存儲(chǔ)的加密對(duì)象(背包)借尿,可以使用 GET Object刨晴,并攜帶該加密對(duì)象的加密信息。即:加密請(qǐng)求頭路翻。
具體可以這樣做:
請(qǐng)求示例:
GET /myphoto.jpg HTTP/1.1
Host: mybucket.pek3a.qingstor.com
Date: Wed, 21 Jul 2021 01:32:07 GMT
Authorization: authorization string
Connection: close
Content-Type: application/octet-stream
X-Qs-Encryption-Customer-Algorithm: AES256
X-Qs-Encryption-Customer-Key: your key
X-Qs-Encryption-Customer-Key-Md5: md5 of your key
響應(yīng)示例:
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 21 Jul 2021 01:32:44 GMT
Last-Modified: Tue, 20 Jul 2021 10:29:28 GMT
Content-Type: application/octet-stream
Content-Length: 712012
Connection: keep-alive
ETag: "7c1fa24c1049ea04713e38a876531b3b"
X-Qs-Encryption-Customer-Algorithm: AES256
X-Qs-Encryption-Customer-Key-Md5: md5 of your key
x-qs-raw-version-id: '596774173842344405
x-qs-request-id: 412b0b33cb5df691
x-qs-storage-class: STANDARD
[712012 bytes of object data]
3.2.2 PUT Object
若喬巴需要將待存儲(chǔ)至指定空間的對(duì)象(背包)進(jìn)行加密狈癞,可以使用 PUT Object,并攜帶加密信息帚桩。
具體可以這樣做:
請(qǐng)求示例:
PUT /myphoto.jpg HTTP/1.1
Host: mybucket.pek3a.qingstor.com
Date: Tue, 20 Jul 2021 10:28:51 GMT
Content-Length: 7987
Authorization: authorization string
X-Qs-Encryption-Customer-Algorithm: AES256
X-Qs-Encryption-Customer-Key: your key
X-Qs-Encryption-Customer-Key-Md5: md5 of your key
響應(yīng)示例:
HTTP/1.1 201 CREATED
Server: nginx
Date: Tue, 20 Jul 2021 10:29:28 GMT
ETag: "7c1fa24c1049ea04713e38a876531b3b"
Content-Length: 0
Connection: close
X-Qs-Encryption-Customer-Algorithm: 'AES256'
X-Qs-Encryption-Customer-Key-Md5: md5 of your key
x-qs-request-id: c60578c617907748
3.2.3 PUT Object - Copy
若喬巴想要對(duì)已經(jīng)存儲(chǔ)在 QingStor 的加密對(duì)象(背包)亿驾,進(jìn)行備份,可以使用PUT Object - Copy 账嚎,對(duì)源對(duì)象(背包)進(jìn)行拷貝莫瞬。
拷貝后的對(duì)象儡蔓,不會(huì)包含源對(duì)象的加密信息,喬巴需要再次提供加密信息疼邀,對(duì)目標(biāo)對(duì)象進(jìn)行加密喂江。
由于拷貝的過程涉及到:
- 讀取源對(duì)象
- 將源對(duì)象寫入目標(biāo)存儲(chǔ)空間
根據(jù)前文說明,我們知道旁振,若需讀取 QingStor 的加密對(duì)象(背包)获询,我們需要提供該加密對(duì)象的加密信息。成功讀取后拐袜,再將該對(duì)象寫入存儲(chǔ)空間時(shí)吉嚣,我們需要提供加密信息,對(duì)該對(duì)象進(jìn)行加密蹬铺。
整個(gè)過程尝哆,我們需要提供兩個(gè)加密信息:源對(duì)象的加密信息與目標(biāo)對(duì)象的加密信息。為了區(qū)分這兩個(gè)加密信息甜攀,QingStor 對(duì)象存儲(chǔ)用到如下請(qǐng)求頭來標(biāo)明源對(duì)象的加密信息:
請(qǐng)求頭 | 類型 | 描述 |
---|---|---|
x-qs-copy-source-encryption-customer-algorithm | String | 源對(duì)象加密算法 |
x-qs-copy-source-encryption-customer-key | String | 源對(duì)象的密鑰 |
x-qs-copy-source-encryption-customer-key-md5 | String | 源對(duì)象的密鑰的 MD5 |
請(qǐng)求示例:
PUT /myphoto.jpg HTTP/1.1
Host: mybucket.pek3a.qingstor.com
Date: Wed, 21 Jul 2021 03:06:32 GMT
Content-Type: application/octet-stream
Authorization: authorization string
X-Qs-Copy-Source: /source-bucket/source-object
X-Qs-Copy-Source-Encryption-Customer-Algorithm: AES256
X-Qs-Copy-Source-Encryption-Customer-Key: original object key
X-Qs-Copy-Source-Encryption-Customer-Key-Md5:original object key's md5
X-Qs-Encryption-Customer-Algorithm: AES256
X-Qs-Encryption-Customer-Key: new object key
X-Qs-Encryption-Customer-Key-Md5: new object key's md5
響應(yīng)示例:
HTTP/1.1 201 CREATED
Server: nginx
Date: Wed, 21 Jul 2021 03:11:02 GMT
ETag: "7c1fa24c1049ea04713e38a876531b3b"
Content-Length: 0
Content-Type: text/plain
Connection: close
X-Qs-Encryption-Customer-Algorithm: 'AES256'
X-Qs-Encryption-Customer-Key-Md5: md5 of your key
x-qs-request-id: c60578c617907748
3.2.4 PUT Object - Move
若喬巴需要將自己已經(jīng)提交儲(chǔ)存的背包移動(dòng)一下存儲(chǔ)位置秋泄,比如從一個(gè)存儲(chǔ)空間移動(dòng)到另外一個(gè)存儲(chǔ)空間,那可以通過 PUT Object - Move 來操作规阀。
因?yàn)橐苿?dòng)背包不涉及到背包數(shù)據(jù)的讀寫恒序,因此該操作是無需提供加密背包時(shí)所使用的加密信息,即:無需提供源對(duì)象加密請(qǐng)求頭谁撼。
移動(dòng)后的背包(目標(biāo)對(duì)象)歧胁,仍然保留源背包(源對(duì)象)加密時(shí)所使用的加密信息。
請(qǐng)求示例:
PUT /myphoto.jpg HTTP/1.1
Host: mybucket.pek3a.qingstor.com
Date: Wed, 21 Jul 2021 03:11:02 GMT
Authorization: authorization string
X-Qs-move-source: /source-bucket/source-object
X-Qs-Copy-Source-Encryption-Customer-Algorithm: AES256
X-Qs-Copy-Source-Encryption-Customer-Key: original object key
X-Qs-Copy-Source-Encryption-Customer-Key-Md5:original object key's md5
X-Qs-Encryption-Customer-Algorithm: AES256
X-Qs-Encryption-Customer-Key: new object key
X-Qs-Encryption-Customer-Key-Md5: new object key's md5
響應(yīng)示例:
HTTP/1.1 201 CREATED
Server: QingStor
Date: Wed, 21 Jul 2021 03:11:02 GMT
ETag: "0c2f573d81194064b129e940edcefe9b"
Content-Length: 0
Connection: close
X-Qs-Encryption-Customer-Algorithm: 'AES256'
X-Qs-Encryption-Customer-Key-Md5: md5 of your key
x-qs-request-id: c60578c617907748
3.2.5 HEAD Object
當(dāng)喬巴存儲(chǔ)的東西越來越多了厉碟,搞不清楚每個(gè)背包里有什么內(nèi)容与帆,這個(gè)時(shí)候可以使用 HEAD Object 來獲取一下這些背包的相關(guān)信息。因?yàn)椴簧婕暗奖嘲鼣?shù)據(jù)的讀寫墨榄,因此該操作無需提供加密背包時(shí)所使用的加密信息,即:無需提供源對(duì)象的加密請(qǐng)求頭勿她。
若喬巴手里的密鑰太多袄秩,不確定密鑰與背包是否匹配,也可以使用HEAD Object 來操作逢并,這個(gè)時(shí)候就需要提供背包加密時(shí)所使用的加密信息之剧,即:需要提供源對(duì)象的加密請(qǐng)求頭,用以驗(yàn)證該加密信息的算法與密鑰是否正確砍聊。
請(qǐng)求示例:
HEAD /myphoto.jpg HTTP/1.1
Host: mybucket.pek3a.qingstor.com
Date: Wed, 21 Jul 2021 06:13:33 GMT
Connection:close
Authorization: authorization string
X-Qs-Encryption-Customer-Algorithm: AES256
X-Qs-Encryption-Customer-Key: your key
X-Qs-Encryption-Customer-Key-Md5:your key's md5
響應(yīng)示例:
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 21 Jul 2021 06:13:33 GMT
Last-Modified: Tue, 20 Jul 2021 10:29:28 GMT
ETag: "0c2f573d81194064b129e940edcefe9b"
Content-Type: application/octet-stream
Content-Length: 7987
Connection: keep-alive
X-Qs-Encryption-Customer-Algorithm: AES256
X-Qs-Encryption-Customer-Key-Md5: key's md5
x-qs-storage-class: STANDARD
x-qs-request-id: aa08cf7a43f611e5886952542e6ce14b
3.3 分段上傳
若喬巴待存儲(chǔ)的背包過大背稼,如超過 5G,這個(gè)時(shí)候玻蝌,喬巴需要將背包進(jìn)行一下切分蟹肘,分為多個(gè)小背包進(jìn)行傳輸词疼。待 QingStor 收到該背包的所有分片后,QingStor 會(huì)將這些分片進(jìn)行組裝帘腹,再次整理為一個(gè)背包進(jìn)行存儲(chǔ)贰盗。
具體做法,參考如下內(nèi)容:
3.3.1 Initiate Multipart Upload
首先阳欲,喬巴需要通知 QingStor舵盈,它需要加密分段上傳。這個(gè)時(shí)候球化,需要用到帶有加密信息的 Initiate Multipart Upload 操作來完成秽晚。
請(qǐng)求示例:
POST /large-object?uploads HTTP/1.1
Host: mybucket.pek3a.qingstor.com
Date: Wed, 21 Jul 2021 06:58:47 GMT
Authorization: authorization string
X-Qs-Encryption-Customer-Algorithm: AES256
X-Qs-Encryption-Customer-Key: your key
X-Qs-Encryption-Customer-Key-Md5: your key's md5
響應(yīng)示例:
HTTP/1.1 200 OK
Server: QingStor
Date: Wed, 21 Jul 2021 06:59:24 GMT
Content-Type: application/json
Content-Length: 90
Connection: keep-alive
X-Qs-Encryption-Customer-Algorithm: AES256
X-Qs-Encryption-Customer-Key-Md5: your key
x-qs-request-id: f697b777721f033e
x-qs-request-id: 37fed66c441a11e5b95f52542e6ce14b
{
"bucket":"test-rose",
"key":"example_key8",
"upload_id":"84947437bc00e22"
}
備注:
- 這個(gè)過程中,QingStor 僅保存密鑰的MD5值筒愚,用于驗(yàn)證后續(xù)上傳分段的密鑰是否正確赴蝇。
- QingStor 將丟棄喬巴提交的密鑰信息。
3.3.2 Upload Object Part
QingStor 收到喬巴加密分段上傳的請(qǐng)求锨能,并做好相關(guān)準(zhǔn)備操作后扯再,告訴喬巴,你可以繼續(xù)上傳分段了址遇。這個(gè)時(shí)候熄阻,喬巴可以使用攜帶有加密信息的 Upload Object Part 來進(jìn)行操作。
備注:
- 由于是同一個(gè)背包(對(duì)象)的不同分片倔约,故加密信息應(yīng)與初始化分段時(shí)提供的加密信息保持一致秃殉。
- 該操作需包含有初始化加密分段上傳階段的 upload_id 字段
請(qǐng)求示例:
PUT /large-object?upload_id=4d26b37a469230619604ecdc0e314782&part_number=0 HTTP/1.1
Host: mybucket.pek3a.qingstor.com
Date: Wed, 21 Jul 2021 06:59:24 GMT
Content-Length: 7987
Authorization: authorization string
X-Qs-Encryption-Customer-Algorithm: AES256
X-Qs-Encryption-Customer-Key: your key
X-Qs-Encryption-Customer-Key-Md5: your key's md5
響應(yīng)示例:
HTTP/1.1 201 CREATED
Server: QingStor
Date: Wed, 21 Jul 2021 06:59:24 GMT
Content-Length: 0
Connection: close
X-Qs-Encryption-Customer-Algorithm: 'AES256'
X-Qs-Encryption-Customer-Key-Md5: md5 of your key
x-qs-request-id: 37fed66c441a11e5b95f52542e6ce14b
3.3.3 Copy Object Part
QingStor 也支持對(duì)加密分段的拷貝操作。與拷貝加密對(duì)象對(duì)象的操作相同浸剩,需要提供額外的請(qǐng)求頭:
請(qǐng)求頭 | 類型 | 描述 |
---|---|---|
x-qs-copy-source-encryption-customer-algorithm | String | 源對(duì)象加密算法 |
x-qs-copy-source-encryption-customer-key | String | 源對(duì)象的密鑰 |
x-qs-copy-source-encryption-customer-key-md5 | String | 源對(duì)象的密鑰的 MD5 |
備注:
- 拷貝時(shí)钾军,提供的源對(duì)象加密信息與初始化分段時(shí)提供的加密信息保持一致。
- 目標(biāo)對(duì)象的加密信息重新給定绢要。
- 該操作需包含有初始化加密分段上傳階段的 upload_id 字段.
請(qǐng)求示例:
PUT /large-object?upload_id=4d26b37a469230619604ecdc0e314782&
Host: mybucket.pek3a.qingstor.com
Date: Wed, 21 Jul 2021 03:06:32 GMT
Content-Type: application/octet-stream
Authorization: authorization string
X-Qs-Copy-Source: /source-bucket/source-object
X-Qs-Copy-Source-Encryption-Customer-Algorithm: AES256
X-Qs-Copy-Source-Encryption-Customer-Key: original object key
X-Qs-Copy-Source-Encryption-Customer-Key-Md5:original object key's md5
X-Qs-Encryption-Customer-Algorithm: AES256
X-Qs-Encryption-Customer-Key: new object key
X-Qs-Encryption-Customer-Key-Md5: new object key's md5
響應(yīng)示例:
HTTP/1.1 201 CREATED
Server: QingStor
Date: Wed, 21 Jul 2021 03:11:02 GMT
ETag: "7c1fa24c1049ea04713e38a876531b3b"
Content-Length: 0
Content-Type: text/plain
Connection: close
X-Qs-Encryption-Customer-Algorithm: 'AES256'
X-Qs-Encryption-Customer-Key-Md5: md5 of your key
x-qs-request-id: c60578c617907748
3.3.4 Complete Multipart Upload
當(dāng)喬巴的加密分段上傳完成后吏恭,這個(gè)時(shí)候,就需要用到帶有加密信息的 Initiate Multipart Upload 操作來通知 QingStor 加密分段上傳完成重罪。
備注:
- 該操作不能單獨(dú)使用樱哼。
- 該操作不涉及到背包數(shù)據(jù)的讀取,故無需提交加密請(qǐng)求頭
- 該操作需包含有初始化加密分段上傳階段的 upload_id 字段
請(qǐng)求示例:
POST /large-object?upload_id=4d26b37a469230619604ecdc0e314782 HTTP/1.1
Host: mybucket.<zone-id>.qingstor.com
Date: Wed, 21 Jul 2021 03:06:32 GMT
Authorization: authorization string
ETag: "0c2f573d81194064b129e940edcefe9b"
{
"object_parts": [
{"part_number": 0, "etag": "c837682353601f7fc0a2ccb6bc8f4654"},
{"part_number": 1, "etag": "28e2c0c6574a1ef20ac41d16a012a7c1"}
]
}
響應(yīng)示例:
HTTP/1.1 201 CREATED
Server: QingStor
Date: Wed, 21 Jul 2021 03:06:32 GMT
Content-Length: 0
Connection: close
x-qs-request-id: 37fed66c441a11e5b95f52542e6ce14b
3.3.5 Abort Multipart Upload
在加密分段上傳的過程中剿配,喬巴發(fā)現(xiàn)傳錯(cuò)背包了搅幅,或者其他原因需要終止加密分段上傳,可以在完成分段上傳前呼胚,提前終止加密分段上傳茄唐,這個(gè)時(shí)候,就可以使用 Abort Multipart Upload蝇更。使用該操作后沪编,已經(jīng)上傳成功的分段也將從 QingStor 刪除呼盆。
備注:
- 該操作不能單獨(dú)使用。
- 該操作無需提交加密請(qǐng)求頭
- 該操作需包含有初始化加密分段上傳階段的 upload_id 字段
請(qǐng)求示例:
DELETE /large-object?upload_id=4d26b37a469230619604ecdc0e314782 HTTP/1.1
Host: mybucket.pek3a.qingstor.com
Date: Wed, 21 Jul 2021 03:06:32 GMT
Content-Length: 0
Authorization: authorization string
響應(yīng)示例:
HTTP/1.1 204 NoContent
Server: QingStor
Date: Wed, 21 Jul 2021 03:06:32 GMT
Content-Length: 0
Connection: close
x-qs-request-id: 37fed66c441a11e5b95f52542e6ce14b
四 結(jié)尾
至此漾抬,我們知道宿亡,QingStor 在完成對(duì)喬巴提交的對(duì)象加密后,將丟棄喬巴提交的用于解密該對(duì)象的密鑰纳令。也就是說挽荠,一旦該對(duì)象加密存儲(chǔ)后,只有擁有該密鑰的人平绩,才能對(duì)該對(duì)象進(jìn)行下載解密圈匆。
就好比家里的保險(xiǎn)柜鑰匙丟了,你打電話給這個(gè)保險(xiǎn)柜的生產(chǎn)廠家捏雌,如果廠家說他能幫你打開跃赚,那這恰恰說明這個(gè)保險(xiǎn)柜不是那么的保險(xiǎn)。所以從保險(xiǎn)角度來說性湿,廠家也沒有備用鑰匙的纬傲。
所以 QingStor 在這里提醒諸位,一定要保管好自己的密鑰哦肤频!
本文由博客一文多發(fā)平臺(tái) OpenWrite 發(fā)布叹括!