Help us understand the problem. What is going on with this article?

AWS MediaStore ライフサイクルポリシーで要らんファイルはサヨウナラ

2019/11/7追記

2019/10 に seconds_since_create が追加された模様

https://docs.aws.amazon.com/ja_jp/mediastore/latest/ug/policies-object-lifecycle-components.html


早いものでもう3月もおしまいですね。
年度末ですよ奥さん!
streampack の木村です。

去年の暮れの話ですが、ファイル削除に難がある MediaStore にライフサイクルポリシーが実装されました。
これにより指定した日数経過後に残ったファイル達を勝手に消去してくれます。

AWS Elemental MediaStore が削除ライフサイクルポリシーをサポート

https://aws.amazon.com/jp/about-aws/whats-new/2018/12/aws-elemental-mediastore-now-supports-delete-lifecycle-policies/

それでは早速コンテナ test1 配下のサブフォルダー destAdestB 配下のファイルを作成後24時間(1日)で消す設定を入れてみようと思います。

スクリーンショット 2019-03-19 14.36.53.png

やり方

どうやらマネージメントコンソール上からは設定できない模様。
AWS CLI の MediaStore コマンドで実施します。

ただし、AWS CLI v2 はなぜか mediastore コマンドの put-lifecycle-policy が実装されておりません。(2019/3/19 現在)

$ aws --version
aws-cli/2.0.0dev0 Python/2.7.10 Darwin/17.7.0 botocore/1.12.48


MEDIASTORE()                                                      MEDIASTORE()



NAME
       mediastore -

DESCRIPTION
       An AWS Elemental MediaStore container is a namespace that holds folders
       and objects. You use a container endpoint to create, read,  and  delete
       objects.

AVAILABLE COMMANDS
       o create-container

       o delete-container

       o delete-container-policy

       o delete-cors-policy

       o describe-container

       o get-container-policy

       o get-cors-policy

       o help

       o list-containers

       o put-container-policy

       o put-cors-policy



                                                                  MEDIASTORE()

なので v1 (1.16.126) でやります!

Life Cycle Policy ファイル作成

ライフサイクルポリシーファイルをテキストで作成します。
ファイル名は何でも可。

LiveEventsLifecyclePolicy.json
{
    "rules": [
         {
            "definition": {
                "path": [
                    {"prefix": "destA/"},
                    {"prefix": "destB/"}
                ],
                "days_since_create": [
                    {"numeric": [">" , 1]}
                ]
            },
            "action": "EXPIRE"
        }
    ]
}

path で対象となるサブフォルダーを指定。
days_since_create で作成後から削除までの日数を指定します。
尚、単位となるので注意です。

mediastore コマンド

さてコマンドを叩きますよ。

削除ポリシー設定

put-lifecycle-policy オプションでポリシーを設定します。

aws mediastore put-lifecycle-policy --container-name test1 --lifecycle-policy file://LiveEventsLifecyclePolicy.json

--container-nametest1 を。

--lifecycle-policy で上で作ったファイル LiveEventsLifecyclePolicy.json を指定しています。

ここは各自の環境に応じてご変更下さい。

ポリシー確認

get-lifecycle-policy で現在コンテナに設定しているポリシーを確認します。

$ aws mediastore get-lifecycle-policy --container-name test1 --output text
{
    "rules": [
         {
            "definition": {
                "path": [
                    {"prefix": "destA/"},
                    {"prefix": "destB/"}
                ],
                "days_since_create": [
                    {"numeric": [">" , 1]}
                ]
            },
            "action": "EXPIRE"
        }
    ]
}

ちゃんと反映されていますね。

ポリシー削除

参考までにもしポリシーを消す場合は以下で削除可能です。

aws mediastore delete-lifecycle-policy --container-name test1

HLS ファイル作成

MediaLive から MediaStore にストリームを流し込んでみます。

スクリーンショット 2019-03-19 16.10.53.png

1日経過後

そのまま翌日までほーちしてファイルがどうなったか確認します。

スクリーンショット 2019-03-22 22.02.50.png

はい、綺麗さっぱり無くなりました!

また一つ便利な機能が追加されました。
欲を言えば時間単位で消せるようになると更に嬉しいところです。

tomopyonsama
セロー買うたった 林道林道
cloudpack
Amazon Web Services (AWS) の導入設計、環境構築、運用・保守をサポートするマネジドホスティングサービス
https://cloudpack.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした