Node.js 使用JavaScript API设置S3对象过期(用于删除)

Node.js 使用JavaScript API设置S3对象过期(用于删除),node.js,amazon-web-services,amazon-s3,Node.js,Amazon Web Services,Amazon S3,我正在使用适用于Amazon AWS S3的Node.js JavaScript API,并希望将对象设置为在创建对象后的指定天数内过期。也就是说,如果我创建并上传一个新对象,我希望它在100天左右后自动删除自己。是否可以根据每个对象设置删除过期时间 指示这可能是可能的: AmazonS3提供了一个过期操作,您可以在生命周期配置中指定该操作使对象过期 当对象到达其生命周期结束时,AmazonS3将其排队等待删除,并异步删除它。到期日期和AmazonS3删除对象的日期之间可能存在延迟。与过期对象

我正在使用适用于Amazon AWS S3的Node.js JavaScript API,并希望将对象设置为在创建对象后的指定天数内过期。也就是说,如果我创建并上传一个新对象,我希望它在100天左右后自动删除自己。是否可以根据每个对象设置删除过期时间

指示这可能是可能的:

AmazonS3提供了一个过期操作,您可以在生命周期配置中指定该操作使对象过期

当对象到达其生命周期结束时,AmazonS3将其排队等待删除,并异步删除它。到期日期和AmazonS3删除对象的日期之间可能存在延迟。与过期对象关联的存储时间不收费

然而,似乎我必须在bucket配置中设置这个过期时间,而不是在上传/创建对象时设置每个对象

指示我可以在创建对象时设置
Expires
参数,但这似乎适用于S3为后续GET请求返回对象时的
Expires
HTTP头

在创建对象时,是否有方法设置对象的过期日期

s3.putObject({
  Bucket: config.s3.bucketName, 
  Key: s3Key, 
  Body: objBuffer,
  ACL: 'public-read',
  ContentType: 'image/jpeg',
  StorageClass: 'REDUCED_REDUNDANCY',
  // Some option here for setting expiration/deletion date?
}, function () {
  console.log(arguments);
});

不能单独设置每个对象的过期规则。要定义对象过期规则,必须定义一个bucket


要使用node.js API执行此操作,请参阅调用。您还可以查看REST API文档中的。

我想知道,如果无法使用参数,为什么所有aws SDK都会提到“Expires”参数。有什么解释吗?您描述的“Expires”参数指的是可以在对象上定义的
Expires
HTTP头。该标头对S3对象的生命周期没有影响,它只影响从S3检索该对象后客户端(浏览器、代理等)将该对象保留在缓存中的时间。生命周期规则是否会在特定时间后或从创建对象时删除所有对象,我的意思是,如果我有一个bucket,并在一段时间后上载对象,bucket中的所有对象是否会在24小时后或从创建时起自动删除?