2011-06-23 80 views
0

我想在S3中使用PHP(Codeigniter)獲取子文件夾的大小。如果我指定的文件夾中的文件,數據返回,但是如果我指定我得到的文件夾:S3存儲桶中的子文件夾是否是一個對象?

[NoSuchKey] The specified key does not exist. 

我相信這意味着它無法找到文件/文件夾。文件夾不是您可以獲得大小的對象嗎?

我已經使用S3瀏覽器的Windows,並列出了文件夾及其大小。

這裏的代碼片段我使用:

$userdir = 'userdata/'.$row->name; 
$userdata = $this->s3->getObject('bucket_name',$userdir,false); 

foreach ($userdata as $name => $val) { 
    $totalSize += $val['size']; 
} 

$totalSize = ($totalSize/1024/1024/1024); 

任何想法表示讚賞!

謝謝!

回答

5

文件夾在S3中並不存在。例如,假設您使用/folder1/folder2/mything.txt的鍵創建對象。大多數讓您瀏覽存儲桶的工具都將顯示爲folder1,其中包含包含mything.txt的folder2。

儘管由於我們習慣使用的文件系統,這很方便和熟悉,但它不是思考S3存儲桶及其內容的正確方法。在S3中,您只需在桶中使用/folder1/folder2/mything.txt中的一個關鍵字。

雖然我不熟悉PHP,但代碼背後的基本思想是紮實的。您需要迭代「文件夾」中的所有項目,然後總計內容以確定大小。不要忘記遍歷文件夾中的文件夾。

+0

我也需要開始使用亞馬遜雲..但他們的價格太高,如果我買一些具有相同功率的專用服務器,我支付更少! – dynamic

+0

非常感謝! –

相關問題