阿里云OSS中存放文件對(duì)訪問速度的影響
OSS是按照bucket來定義對(duì)應(yīng)用戶訪問不同的數(shù)據(jù)范圍,而又提供了大量的針對(duì)于bucket的屬性可以對(duì)不同業(yè)務(wù)內(nèi)容的bucket設(shè)置不同的功能。但是系統(tǒng)限制單個(gè)用戶最多可以創(chuàng)建30個(gè)bucket。
因此我們建議用戶可以在單個(gè)bucket下設(shè)置不同的文件夾以實(shí)現(xiàn)業(yè)務(wù)范圍的區(qū)分,并且可以通過STS來限制臨時(shí)accessKeyId, accessKeySecret和token來限制用戶的ACL權(quán)限。這種業(yè)務(wù)場景需要注意以下兩點(diǎn):
1、在一般的文件系統(tǒng)中,當(dāng)單個(gè)目錄下存放的文件較多的時(shí)候是會(huì)影響文件的讀寫速度。但是在OSS中,目錄僅僅是一個(gè)邏輯概念,一個(gè)文件的目錄僅僅是該object的key值的前綴,并不影響該object的存放位置以及讀取速度。但是相應(yīng)的帶來的缺點(diǎn)就是無法對(duì)某個(gè)目錄下的所有文件進(jìn)行匯總計(jì)算。
2、在通過STS設(shè)置權(quán)限的時(shí)候可以通過policy來完成權(quán)限的控制,包括對(duì)某個(gè)目錄的權(quán)限,例如下面這段policy的設(shè)置就是可以設(shè)置僅能夠獲取bucket(test)下的testimport文件夾下的文件,而沒有其他相對(duì)目錄的權(quán)限。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:GetObject"
],
"Resource": [
"acs:oss:::test/testimport/*"
]
}
]
}