AWS S3 SDK Получить папку вместо файла - PullRequest
3 голосов
/ 13 сентября 2011

Ниже кодов можно получить 1 отдельный файл из AWS 3, но как насчет папки?

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);

Ответы [ 2 ]

4 голосов
/ 19 сентября 2011

В Amazon S3 нет таких вещей, как папки. Это «плоская» файловая система. Чем ближе к папкам, тем ближе к именам файлов добавляются префиксы типа foo/bar/filename.txt. Даже если несколько инструментов S3 покажут вам вещи, как если бы они содержались внутри папок, эта концепция не существует в S3.

Пожалуйста, просмотрите эту связанную ветку: Проблема с папками Amazon s3

1 голос
/ 28 января 2015

Приведенный ниже код 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');
    }
});

Подробнее см.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...