2011-09-13 10 views
2

아래 코드는 AWS 3에서 하나의 단일 파일을 가져올 수 있지만 폴더는 어떻게됩니까?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

을; 사실, @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'); 
    } 
}); 

자세한 내용은