gpt4 book ai didi

javascript - 如何按创建日期从 AWS S3 查询项目

转载 作者:行者123 更新时间:2023-11-30 08:35:53 25 4
gpt4 key购买 nike

我想根据添加到 S3 的日期/时间查询存储桶中特定子目录中的 S3 项目。我还没有找到关于此的任何明确文档,所以我想知道它是如何实现的?

我要执行的查询类型如下所示...

  1. 返回目录images/user1/下的S3 bucket images中最近创建的文件的URL>
  2. 返回目录 images/下的 S3 存储桶 images 中在日期时间 X 和日期时间 Y 之间创建的所有项目的 URL user1

最佳答案

2019 年 3 月 19 日更新

显然 s3api让你很容易做到这一点

一种解决方案可能是使用 s3api。如果您的对象少于 1000 个,它很容易工作,否则您需要使用分页。

s3api 可以列出所有对象,并且有一个属性用于 s3 中导入的键的 lastmodified 属性。然后可以对其进行排序,查找日期之前或之后的文件,匹配日期...

运行此类选项的示例

  1. 给定日期的所有文件

    DATE=$(date +%Y-%m-%d)
    aws s3api list-objects-v2 --bucket test-bucket-fh --query 'Contents[?
    contains(LastModified, `$DATE`)]'
  2. 特定日期后的所有文件

    export YESTERDAY=`date -v-1w +%F`
    aws s3api list-objects-v2 --bucket test-bucket-fh --query 'Contents[?
    LastModified > `$YESTERDAY`)]'

s3api 将返回一些元数据,因此您可以过滤特定元素

DATE=$(date +%Y-%m-%d)
aws s3api list-objects-v2 --bucket test-bucket-fh --query 'Contents[?contains(LastModified, `$DATE`)].Key'

旧答案

AWS-SDK/CLI 确实应该实现某种按日期检索 标志,这将使生活更轻松并且更便宜

如果您没有使用日期作为前缀/标记您的文件,您可能还想尝试使用标志

--start-after (string)

如果您知道要从哪个最新文件开始列出,可以使用带有 --start-after 标志的 list-objects-v2 命令。

“StartAfter 是您希望 Amazon S3 开始列出的位置。Amazon S3 在这个指定键之后开始列出。StartAfter 可以是存储桶中的任何键”

因此 --start-after 将不断获取您的对象,因此如果您想限制项目数量,请尝试指定一个 --max-items 标志。

https://docs.aws.amazon.com/cli/latest/reference/s3api/list-objects-v2.html

关于javascript - 如何按创建日期从 AWS S3 查询项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31460246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com