Comment supprimer ou purger les anciens fichiers sur S3?
-
13-11-2019 - |
Question
Y a-t-il des solutions existantes pour supprimer des fichiers plus âgés que x jours?
La solution
Amazon a introduit Expiration des objets récemment.
Amazon S3 annonce l'expiration des objets
Amazon S3 a annoncé une nouvelle fonctionnalité, l'expiration d'objet qui vous permet de planifier la suppression de vos objets après une période de temps prédéfinie. L'utilisation de l'expiration des objets pour planifier la suppression périodique des objets élimine la nécessité d'identifier les objets de suppression et de soumettre des demandes de suppression à Amazon S3.
Vous pouvez définir les règles d'expiration des objets 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 sous réserve de la règle d'expiration, et la période d'expiration spécifie le nombre de jours de la date de création (c'est-à-dire l'âge), après quoi l'objet (s) doit être supprimé. Une fois que les objets ont dépassé leur date d'expiration, ils seront mis en file d'attente pour la suppression. Vous ne serez pas facturé pour le stockage pour les objets à ou après leur date d'expiration.
Autres conseils
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.
Vous pouvez utiliser les règles du cycle de vie AWS S3 pour expirer les fichiers et les supprimer. Tout ce que vous avez à faire est de sélectionner le seau, de cliquer sur le bouton "Ajouter des règles de cycle de vie" et de le configurer et AWS s'en occupera pour vous.
Vous pouvez référer le blog ci-dessous de Joe pour les 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 cela aide!
Vous pouvez utiliser le script PowerShell suivant pour supprimer l'objet expiré après 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
}
}
}