web-dev-qa-db-fra.com

Comment supprimer ou purger les anciens fichiers sur S3?

Existe-t-il des solutions pour supprimer les fichiers de plus de x jours?

52
Erik

Amazon a introduit expiration de l'objet récemment. 

Amazon S3 annonce l'expiration de l'objet

Amazon S3 a annoncé un nouveau fonctionnalité, Expiration d’objet qui vous permet de planifier la suppression de vos objets après une période prédéfinie. Utilisation de l’expiration d’objets planifier la suppression périodique des objets élimine le besoin pour vous identifier les objets à supprimer et soumettre des demandes de suppression à Amazon S3.

Vous pouvez définir des règles d'expiration d'objet pour un ensemble d'objets dans votre seau. Chaque règle d’expiration d’objet vous permet de spécifier un préfixe et une période d'expiration en jours. Le champ préfixe (par exemple logs/) identifie le ou les objets soumis à la règle d'expiration, et la période d'expiration spécifie le nombre de jours à compter de la date de création (c'est-à-dire l'âge) après lequel les objets doivent être supprimés. Une fois les objets ont dépassé leur date d'expiration, ils seront mis en file d'attente pour suppression. Vous ne seront pas facturés pour le stockage d'objets sur ou après leur date d'expiration.

76
Ravi Bhatt

Voici quelques informations sur la façon de le faire ...

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

J'espère que cela t'aides.

4
JonLovett

Vous pouvez utiliser le script Powershell suivant pour supprimer un objet arrivé à expiration après le 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

Vous pouvez utiliser les règles de cycle de vie AWS S3 pour expirer les fichiers et les supprimer. Tout ce que vous avez à faire est de sélectionner le compartiment, de cliquer sur le bouton "Ajouter des règles de cycle de vie", de le configurer et AWS s'en charge pour vous.

Vous pouvez vous référer au message de blog ci-dessous de Joe pour des instructions étape par étape. C'est assez simple en fait:

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

J'espère que ça aide!

0
Raghu Chinnannan