Javascript 为存储在s3中的文件获取正确的createdAt和modifiedAt日期

Javascript 为存储在s3中的文件获取正确的createdAt和modifiedAt日期,javascript,node.js,amazon-s3,metadata,fs,Javascript,Node.js,Amazon S3,Metadata,Fs,我有一些文件存储在s3中,我必须找出文件创建的确切日期。我一下载文件,就会为该文件生成新的created_attimestamp,但当我在excel或pdf中打开它时,我能够看到正确的created_attimestamp 我正在使用node.js从s3获取文件,需要一些库将这些日期提供给我 我已经为本地文件尝试了xslx、fs、winattr和aws sdk,例如,下载后的文件可以使用Node JS fs.stat函数 这将为您提供文件stats/metadata详细信息,因为它们由运行nod

我有一些文件存储在s3中,我必须找出文件创建的确切日期。我一下载文件,就会为该文件生成新的
created_at
timestamp,但当我在excel或pdf中打开它时,我能够看到正确的
created_at
timestamp

我正在使用
node.js
从s3获取文件,需要一些库将这些日期提供给我


我已经为本地文件尝试了
xslx
fs
winattr
aws sdk

,例如,下载后的文件可以使用Node JS fs.stat函数

这将为您提供文件stats/metadata详细信息,因为它们由运行node.js的操作系统存储

如果要查找文件在AmazonS3上创建的日期,则可以使用对象头枕请求

请参阅,以了解有关该问题的更多信息

似乎Last Modified是对象的上次修改或创建日期,以最后一个为准。这可能会为您提供所需的粒度。如果没有,您可能可以将HEAD命令与版本控制命令结合使用,以确定创建日期。查找第一个版本,然后在创建日期获取该第一个版本的上次修改

有关更多详细信息,请参阅

PDF文件将其访问、创建等元数据属性作为其格式的一部分存储在内部。您可以使用


Excel文件和大多数Microsoft文档执行类似的操作,对于本地文件,您可以使用

读取工作簿的created属性,例如,下载文件后,您可以使用Node JS fs.stat函数

这将为您提供文件stats/metadata详细信息,因为它们由运行node.js的操作系统存储

如果要查找文件在AmazonS3上创建的日期,则可以使用对象头枕请求

请参阅,以了解有关该问题的更多信息

似乎Last Modified是对象的上次修改或创建日期,以最后一个为准。这可能会为您提供所需的粒度。如果没有,您可能可以将HEAD命令与版本控制命令结合使用,以确定创建日期。查找第一个版本,然后在创建日期获取该第一个版本的上次修改

有关更多详细信息,请参阅

PDF文件将其访问、创建等元数据属性作为其格式的一部分存储在内部。您可以使用


Excel文件和大多数Microsoft文档都有类似的功能,您可以使用

阅读工作簿的created属性。仔细想想,如果它们是pdf和xlsx等特定类型的文档,则原始创建的统计数据可能存储在这些文件中,而不是作为文件元数据。你可能需要解析你的pdf/excel文档来做你想要做的事情。我的回答可能不符合你的需要。你是对的,你能提供一些东西来解析
docx
文件元数据吗?想想看,如果它们是特定类型的文档,比如pdf和xlsx,那么原始创建的_at stats可能存储在这些文件中,而不是作为文件元数据。你可能需要解析你的pdf/excel文档来做你想要做的事情。我的回答可能不符合您的需要。您是对的,您可以提供一些东西来解析
docx
文件元数据吗?感谢
节点pdfutils
,但我已经尝试了其他所有方法,包括fs和head请求,我知道它们为什么不起作用。S3
head
对象请求返回上次修改的
header,因与标准HTTP行为的一致性而得名。这实际上是对象写入S3(“创建”)的日期/时间,因为S3对象是不可变的,并且在上传到bucket后实际上无法“修改”。事实上,更新对象元数据并不会更新元数据,而是使用对象本身的副本以及新元数据覆盖对象。这将
Last Modified
设置为“now”,但实际上它并没有被修改——从技术上讲,它是一个新对象,在S3中有一个新的创建日期,是旧对象的副本。对于OP来说,有用的信息就在这里。我从未使用过AmazonS3,我只是对文档感兴趣@DileepChirumamila Microsoft文档格式以.*x结尾,例如.docx或.xlsx是XML格式的。最糟糕的情况是,在记事本应用程序中打开文档,找到具有创建日期的节点,然后使用XML解析器手动在节点中解析出来。感谢
节点pdfutils
,但我已经尝试了所有其他方法,包括fs和head请求,S3
HEAD
对象请求返回一个
Last Modified
头,该头因与标准HTTP行为的一致性而得名。这实际上是对象写入S3(“创建”)的日期/时间,因为S3对象是不可变的,并且在上传到bucket后实际上无法“修改”。事实上,更新对象元数据并不会更新元数据,而是使用对象本身的副本以及新元数据覆盖对象。这将
Last Modified
设置为“now”,但实际上它并没有被修改——从技术上讲,它是一个新对象,在S3中有一个新的创建日期,是旧对象的副本。对于OP来说,有用的信息就在这里。我从未使用过AmazonS3,我只是对文档感兴趣@DileepChirumamila Microsoft文档格式以.*x结尾,例如.docx或.xlsx是XML格式的。最糟糕的情况是,在记事本应用程序中打开文档,找到具有创建日期的节点,并使用XML解析器手动解析出您自己的节点。