2011-09-13 53 views
2

下面的代碼可以從AWS 3獲得1個單個文件,但是,文件夾又是如何呢?AWS S3 SDK獲取文件夾而不是文件

var _key:int=Account.lessons[dl_i].id; 
var dest:String = Conf.Dir+_key; 
var request:GetObjectRequest = new 
GetObjectRequest().WithBucketName(Conf.bucketName).WithKey(_key+""); 
var response:GetObjectResponse = client.GetObject(request); 
response.WriteResponseStreamToFile(dest); 

回答

4

在Amazon S3中沒有文件夾這樣的東西。這是一個「平面」文件系統。越接近文件夾,您的文件名就會加上前綴foo/bar/filename.txt。 儘管有幾個S3工具會顯示你的東西,就像它們被包含在文件夾中一樣,但這個概念在S3上不存在。

請參閱此相關的主題:Amazon s3 Folders Problem

1

的JavaScript代碼下面會計算內部的「文件夾」的文件;實際上,它會列出共享相同部分名稱的對象,因爲@Viccari指出沒有文件夾。由於data.Contents將是一個包含「文件夾內文件」詳細信息的數組,因此您可以「獲取文件夾」。

var bucket = 'the_bucket_name'; 
var path_to_folder = 'path/to/the/folder/'; 
var params= {Bucket: bucket, Delimiter: path_to_folder }; 
s3.listObjects(params, function (err, data) { 
    if (err) { 
     console.log('Could not load objects from S3', err); 
    } else { 
     console.log('Loaded ' + data.Contents.length + ' items from S3'); 
    } 
}); 

有關更多細節,參見

相關問題