This npm package provide a s3 safety deployment.
- Set s3 lifecycle that delete object that has a "ShouldDelete" tag.
yarn add s3-safety-deploy
- Add your package.json scripts
s3-safety-deploy --bucket your-bucket-name --uploadDir path-to-dir
my-bucketというS3バケットの/publish
というディレクトリを公開している場合の例。
- 新しいバージョンのファイルをアップロードする前に、既存(前バージョン)のファイルをリスト化しておく
- 新しいバージョンのファイルをアップロードする
-
delete-pattern
で削除するファイルが指定されていれば、該当する前バージョンのファイルを削除する - その他の前バージョンのファイルに全て
ShouldDelete
というキーのタグを付与する(値は1
)