Question

Y a-t-il des solutions existantes pour supprimer des fichiers plus âgés que x jours?

Était-ce utile?

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
        }
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top