我已经能够将环回框架连接到Amazon S3帐户,从而创建REST API。但是,它显示的信息仅在整个帐户的容器和文件级别。
我的目标是创建API,允许用户编写不同级别的文件夹名称,然后显示该路径的内容。
例如: 亲 child1 child1儿 toys.txt 的child2 notes.txt 的child2儿 toys.txt
所以如果用户输入parent / child2,那么其余的api应该从那里开始显示内容,即{notes.txt,child2-child /}到深度为1
我已经能够在getFiles
的{{1}}函数中硬连线一个存储桶:
storage-service.js
现在想要创建API,允许我指定文件夹名称并将其所有内容显示为单个深度。
答案 0 :(得分:0)
首先要注意的是S3中没有文件夹。 S3具有扁平结构。您应该先阅读Working with S3 folders。
从节点使用S3时,最好的办法是使用AWS SDK。为了获取文件夹内容,您可以创建将接受存储模型上的路径参数的远程方法,然后您可以使用listObjecstV2方法获取对象列表。
var AWS = require('aws-sdk');
var s3 = new AWS.S3()
var params = {
Bucket: 'hardwiredbucketname',
Prefix: 'parent/',
Delimiter: '/'
};
s3.listObjectsV2(params, function(err, data){
if (err) console.log(err, err.stack);
console.log(data);
});
获取'数据'来自回调的对象然后解析'内容'和' CommonPrefixes'获取文件和文件夹的属性。