Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 按日期查询AmazonS3对象_Amazon Web Services_Amazon S3 - Fatal编程技术网

Amazon web services 按日期查询AmazonS3对象

Amazon web services 按日期查询AmazonS3对象,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我有一个Amazon S3存储桶,其结构如下: %patientId%/%sessionId%/列出文件名为日期时间。 患者id和会话id是唯一的。 两名患者的示例: 患者1/session1/2021-05-29T061445Z.xxx 患者1/session1/2021-05-30T061445Z.xxx 患者2/session2/2021-05-31T061445Z.xxx 每个会话可能包含数千个文件。 文件名是date,我更喜欢(除非没有其他选择)不使用AmazonS3的“LastM

我有一个Amazon S3存储桶,其结构如下:

%patientId%/%sessionId%/列出文件名为日期时间。 患者id和会话id是唯一的。 两名患者的示例:

  • 患者1/session1/2021-05-29T061445Z.xxx
  • 患者1/session1/2021-05-30T061445Z.xxx
  • 患者2/session2/2021-05-31T061445Z.xxx
每个会话可能包含数千个文件。 文件名是date,我更喜欢(除非没有其他选择)不使用AmazonS3的“LastModifiedTime”,因为这两个日期之间可能存在差异

我想按患者/疗程和时间(文件名称)进行查询,例如2021-05-20和2021-05-29之间的患者1、疗程1的所有文件

我知道使用标准的AmazonS3列表对象是不可能的。 我查看了AWS Athena,但它似乎更适合查询AmazonS3文件内容,而不是查询它们的名称。 那么,推荐的解决方案是什么?
谢谢,

如果你有大量的对象,你可以考虑<强>维护你自己的对象数据库<强>。添加/删除对象时,应更新此数据库。这听起来可能需要做很多工作,但对于您的应用程序来说,它会表现得非常好


您可以使用填充初始列表,该列表可以提供每日或每周CSV文件,列出存储桶中的所有对象。

您可以请求S3库存,并使用其结果进一步筛选您的文件。“我知道使用标准S3列表对象是不可能的”-当然可以,您需要列出所有文件,然后在客户端进行筛选。我知道可以在客户端进行筛选,但不会有很好的性能。此外,我可能有1000多个文件,最多有1000个。我认为是时候对这个话题给出一个规范的答案了,在过去一周左右,这个问题至少出现了十几次。无法想象您看到此问题或类似问题的频率。你有没有可能已经写了一个更广泛的答案,其中包括更详细的清单,以及在客户机上列出和筛选的备选方案等!?谢谢使用我自己的DB参照S3来管理对象是一个直截了当的解决方案。我在想,如果没有我的DB,可能会有另一种解决方案,但似乎不是。