环回组件存储创建API以显示文件夹

时间:2016-09-06 00:29:52

标签: javascript node.js express amazon-s3 loopbackjs

我已经能够将环回框架连接到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,允许我指定文件夹名称并将其所有内容显示为单个深度。

1 个答案:

答案 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'获取文件和文件夹的属性。