web-dev-qa-db-ja.com

S3の古いファイルを削除またはパージする方法は?

X日より古いファイルを削除する既存のソリューションはありますか?

56
Erik

Amazonは最近、 オブジェクトの有効期限 を導入しました。

Amazon S3がオブジェクトの有効期限を発表

Amazon S3は、事前定義された期間の経過後にオブジェクトの削除をスケジュールできる新しい機能であるObject Expirationを発表しました。オブジェクトの有効期限を使用してオブジェクトの定期的な削除をスケジュールすると、削除するオブジェクトを特定し、削除リクエストをAmazon S3に送信する必要がなくなります。

バケット内のオブジェクトのセットに対してオブジェクト有効期限ルールを定義できます。各オブジェクトの有効期限ルールでは、プレフィックスと有効期限を日単位で指定できます。プレフィックスフィールド(例:logs/)は、有効期限ルールの対象となるオブジェクトを識別し、有効期限は、オブジェクトが削除されるまでの作成日(つまり年齢)からの日数を指定します。オブジェクトが有効期限を過ぎると、削除のためにキューに入れられます。有効期限以降のオブジェクトの保存料は請求されません。

78
Ravi Bhatt

これを行う方法に関する情報があります...

http://docs.amazonwebservices.com/AmazonS3/latest/dev/ObjectExpiration.html

お役に立てれば。

4
JonLovett

次のPowershellスクリプトを使用して、x daysの後に期限切れになったオブジェクトを削除できます。

[CmdletBinding()]
Param(  
  [Parameter(Mandatory=$True)]
  [string]$BUCKET_NAME,             #Name of the Bucket

  [Parameter(Mandatory=$True)]
  [string]$OBJ_PATH,                #Key prefix of s3 object (directory path)

  [Parameter(Mandatory=$True)]
  [string]$EXPIRY_DAYS             #Number of days to expire
)

$CURRENT_DATE = Get-Date
$OBJECTS = Get-S3Object $BUCKET_NAME -KeyPrefix $OBJ_PATH
Foreach($OBJ in $OBJECTS){
    IF($OBJ.key -ne $OBJ_PATH){
        IF(($CURRENT_DATE - $OBJ.LastModified).Days -le $EXPIRY_DAYS){
            Write-Host "Deleting Object= " $OBJ.key
            Remove-S3Object -BucketName $BUCKET_NAME -Key $OBJ.Key -Force
        }
    }
}
0
Mithun Biswas

AWS S3ライフサイクルルールを使用して、ファイルを期限切れにして削除できます。バケットを選択し、[ライフサイクルルールの追加]ボタンをクリックして設定するだけで、AWSが自動的に処理します。

ステップごとの手順については、Joeの以下のブログ投稿を参照してください。実際には非常に簡単です:

https://www.joe0.com/2017/05/24/Amazon-s3-how-to-delete-files-older-than-x-days/

それが役に立てば幸い!

0