Réponses:
Amazon a désormais la possibilité de définir des stratégies de compartiment pour expirer automatiquement le contenu:
http://docs.amazonwebservices.com/AmazonS3/latest/UG/ObjectExpiration.html
Amazon a entre-temps introduit les cycles de vie S3 (voir le blog d'introduction Amazon S3 - Expiration d'objet ), où vous pouvez spécifier un âge maximum en jours pour les objets dans un compartiment - voir Expiration d'objet pour plus de détails sur son utilisation via l'API S3 ou la gestion AWS Console.
Vous pouvez utiliser s3cmd pour écrire un script à exécuter dans votre compartiment et supprimer des fichiers en fonction d'une condition préalable.
Vous devrez écrire du code (bash, python) dessus.
Vous pouvez télécharger s3cmd sur http://s3tools.org/s3cmd
script shell pour supprimer les anciens compartiments à l'aide de la
source de l' utilitaire s3cmd :
http://shout.setfive.com/2011/12/05/deleting-files-older-than-specified-time-with-s3cmd-and-bash/
#!/bin/bash
# Usage: ./deleteOld "bucketname" "30 days"
s3cmd ls s3://$1 | while read -r line; do
createDate=`echo $line|awk {'print $1" "$2'}`
createDate=`date -d"$createDate" +%s`
olderThan=`date -d"-$2" +%s`
if [[ $createDate -lt $olderThan ]]
then
fileName=`echo $line|awk '{$1=$2=$3=""; print $0}' | sed 's/^[ \t]*//'`
echo $fileName
if [[ $fileName != "" ]]
then
s3cmd del "$fileName"
fi
fi
done;
Video 1280x720 (2)13201781136780000000.mp4
donne juste la vidéo pas le reste.
Non, S3 n'est qu'un magasin de données. Vous devrez utiliser un client externe pour supprimer périodiquement les anciens fichiers.
J'ai trouvé une solution beaucoup plus rapide pour supprimer des lots à l'aide d'AWS cli
#!/usr/bin/env php
<?php
//remove files which were created 24 hrs ago
$fcmd = 'aws s3 ls s3://<bucket>/<prefix>/ | awk \'{$3=""; print $0}\'';//remove file size and handle file with spaces
exec($fcmd, $output, $return_var);
$seconds_24_hour = 24 * 60 * 60;
$file_deleted_count = 0;
if (!empty($output)) {
$deleted_keys = array();
foreach ($output as $file) {
$file_path = substr($file, 21);
$file_time_stamp = substr($file, 0, 19); //2017-09-19 07:59:41
if (time() - strtotime($file_time_stamp) > $seconds_24_hour) {
$deleted_keys[]["Key"] = "<prefix>/" . $file_path;
$file_deleted_count++;
}
}
if (!empty($deleted_keys)) {
$json_data_delete = array("Objects" => $deleted_keys);
echo $cmd = ("aws s3api delete-objects --bucket <bucket> --delete '" . json_encode($json_data_delete) . "'");
system($cmd);
}
echo "\n$file_deleted_count files deleted from content_media\n";
}
Référence pour la suppression par lots /programming//a/41734090/1589444
Référence pour la gestion des fichiers avec de l'espace avec un cas de réussite à 100% /programming/36813327/how-to-display-only-files-from-aws-s3-ls-command