【アップデート】S3インベントリのリスト作成時のタイムスタンプが記録されるようになりました

2018.02.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

小ネタのご紹介です。 S3バケットに格納されたオブジェクトのリストを、定期的にCSV形式またはORC形式で出力してくれるS3インベントリですが、アップデートにより、リスト作成を開始した時点のタイムスタンプが記録されるようになっていました。

Announcement: Amazon S3 adds Creation Timestamp to S3 Inventory

S3インベントリの設定方法については、弊社 西澤の記事を参照ください。

【新機能】S3 Inventoryを試してみた #reinvent

どこに記録されるの?

S3インベントリでは、対象オブジェクトの一覧を出力した「リストファイル」と、インベントリに関する基本情報を出力した「マニフェストファイル」が作成されます。 作成時のタイムスタンプは、マニフェストファイル(ファイル名manifest.json)に記録されています。

$ aws s3 ls s3://cm-xxxx-bucket/ --recursive
2018-02-08 00:09:43         33 cm-xxxx-bucket/cm-maru-inventory/2018-02-07T08-00Z/manifest.checksum
2018-02-08 00:09:42        516 cm-xxxx-bucket/cm-maru-inventory/2018-02-07T08-00Z/manifest.json
2018-02-08 00:09:03          0 cm-xxxx-bucket/cm-maru-inventory/data/
2018-02-08 00:09:35        303 cm-xxxx-bucket/cm-maru-inventory/data/c04d29c3-b6c1-4446-a3f1-583bd2371101.csv.gz
2018-02-08 00:09:43        103 cm-xxxx-bucket/cm-maru-inventory/hive/dt=2018-02-07-08-00/symlink.txt

さっそく見てみる

それでは、manifest.jsonを開いて、タイムスタンプを確認。

$ aws s3 cp s3://cm-xxxx-bucket/cm-xxxx-bucket/cm-maru-inventory/2018-02-07T08-00Z/manifest.json -
{
  "sourceBucket" : "cm-xxxx-bucket",
  "destinationBucket" : "arn:aws:s3:::cm-xxxx-bucket",
  "version" : "2016-11-30",
  "creationTimestamp" : "1517990400000",
  "fileFormat" : "CSV",
  "fileSchema" : "Bucket, Key, Size, LastModifiedDate, ETag, StorageClass, IsMultipartUploaded, ReplicationStatus, EncryptionStatus",
  "files" : [ {
    "key" : "cm-xxxx-bucket/cm-maru-inventory/data/c04d29c3-b6c1-xxxx-a3f1-583bd2371101.csv.gz",
    "size" : 303,
    "MD5checksum" : "5124aa4e575400f96f3c531e44b08d21"
  } ]
}

タイムスタンプはエポック”ミリ秒”

DATE型ではなく、エポック形式で出力されています。人が理解するにはDATE型への変換が必要ですが、エポックミリ秒であることに注意してください。間違ってエポック秒として変換すると、とんでもない未来に飛ばされることになります。

さいごに

小さなアップデートのお知らせでしたが、どこかで誰かの気付きになれば幸いです。 以上、丸毛でした。