首页 > 解决方案 > 如何从 React js 中的 s3 存储桶中获取 5 个最新文件?

问题描述

我正在使用 aws-sdk 获取对象列表,如下所示:

 const AWS = require('aws-sdk/global');

 const S3 = require('aws-sdk/clients/s3');

 AWS.config.update({ accessKeyId: 'abc123', secretAccessKey: 'teyb3872312', region: 'eu-west-1' });
 const s3 = new AWS.S3();

const params = {
  Bucket: 'demo-bucket',
  Delimiter: '',
  Prefix: '',
};

  s3.listObjectsV2(params, (err, data) => {
  if (err) throw err;
  console.log(data.Contents);
 })

从这段代码中,我从存储桶中获取了所有数千个对象,但只需要存储桶中的 5 个最新对象。

请建议是否有人知道解决方案。

标签: reactjsamazon-web-servicesamazon-s3aws-sdk

解决方案


无法根据 请求列表LastModified

相反,您的应用程序需要检索整个列表,然后对返回的对象进行排序LastModified,然后选择最新的 5 个。

另外,请注意,每次调用最多将返回 1000 个对象。您将需要使用延续令牌来请求接下来的 1000 个对象,并不断重复直到列表完成。

如果您将定期执行此操作,您还可以考虑使用Amazon S3 Inventory,它可以提供存储桶中所有对象的每日列表。


推荐阅读