2017S3のGlacierストレージクラスから大量のファイルをダウンロードするために勝手にポーリングしてダウンロードするスクリプトを書きました。S3のGlacierストレージクラスにバックアップしていたデータをダウンロードするためのスクリプトを書きました。以下のようなたくさんのファイルをダウンロードするのに向いてます。GlacierというS3のGlacierストレージクラスと同じような独立サービスがあったところです。この両者はファイルやAPIの取り扱いが異なるため、正しい情報を見つけるのに大変苦労しました。今回のスクリプトはawscliがインストールされている前提です。インストールされていない方はあらかじめインストールとアカウントの設定を済ませてください。(Boto3)を利用しています。pipでインストールできます。boto3手順S3のAPIでダウンロードしたいファイルに対してrestoreのリクエストを出す一定時間ごとにポーリングしてrestoreリクエストの処理が終わっていたらファイルをダウンロードするコードコードはこんな感じです。使う時にはTARGET_DIRかTARGET_FILEにダウンロードしたいディレクトリ、もしくはファイルの情報を記載して下さい。ディレクトリごとダウンロードする場合はTARGET_TYPEをDIRに、ファイルをダウンロードする場合はTARGET_TYPEをFILEとしてください。両方同時に指定することはできません。上記のスクリプトではPOLLING_TIMEが7200秒、すなわち2時間に指定されています。Glacierはだいたい4時間でrestoreが完了するので、restoreリクエスト出す→一回ポーリングを空振る→二回目のポーリングでダウンロード完了となります。空振るのが嫌であればPOLLING_TIMEを14400以上にすることをお勧めします。注意事項Glacierからの復元については料金設計に重要なポイントがあります。具体的にはリンク先を読んでいただければと思いますが、くれぐれもご注意ください。Glacierでクラウド破産しないためになお、今回紹介したスクリプトの使用は自己責任でお願いします。これを利用した方が何かしらの損失を被っても責任を負いかねますのであらかじめご了承ください。documentation以上です。DoeWeb会社に勤務するデザイナーです。普段はデザインを担当していますが、ここではデザイン、プログラミング、インフラなど興味の赴くままに幅広く書いています。DoeWeb会社に勤務するデザイナーです。普段はデザインを担当していますが、ここではデザイン、プログラミング、インフラなど興味の赴くままに幅広く書いています。