阿里云OSS中的目錄/文件夾概念
發(fā)布時間:2018-02-23 點擊數(shù):2821
OSS中文件夾的概念僅是一個邏輯概念,在通過API/SDK的方式設(shè)置文件夾的時候可以指定object對應(yīng)的key值包括前面的目錄即可實現(xiàn)該功能。例如,定義object的key為abc/1.jpg就會在該bucket下創(chuàng)建一個abc的文件夾,而在文件夾下即會有一個1.jpg的文件。在控制臺上也可以通過新建文件夾按鈕來創(chuàng)建文件夾。
OSS中的文件夾其實是一個大小為0KB的空文件。因此,用戶創(chuàng)建一個key值為1/的object就會定義文件夾1;并且如果用戶創(chuàng)建文件abc/1.jpg,系統(tǒng)是不會創(chuàng)建abc/這個文件的,因此在刪除abc/1.jpg后將不會再存在abc這個文件夾。
由于OSS采用的是分布式存儲的方式,object并不是根據(jù)文件夾進(jìn)行物理存儲的。也就是說并不是一個文件夾下的所有的文件都會存儲在一起的。在后端存儲的過程中不同的文件夾的文件僅僅是key值的前綴不一樣。因此這種架構(gòu)下就會導(dǎo)致無法很方便的統(tǒng)計某個文件夾下的匯總信息,如文件夾大小、文件夾PV數(shù)等。而想要遍歷某個文件夾下的所有的文件也需要首先通過ListObject接口獲取文件夾下的所有文件的key值(這里需要通過prefix指定文件夾),然后再進(jìn)行操作。