Respuestas:
Amazon ahora tiene la capacidad de establecer políticas de depósito para expirar automáticamente el contenido:
http://docs.amazonwebservices.com/AmazonS3/latest/UG/ObjectExpiration.html
Mientras tanto, Amazon ha introducido los ciclos de vida de S3 (consulte la publicación de blog introductoria Amazon S3 - Expiración de objetos ), donde puede especificar una antigüedad máxima en días para los objetos en un depósito: consulte Expiración de objetos para obtener detalles sobre su uso a través de la API de S3 o la Administración de AWS Consola.
Puede usar s3cmd para escribir un script para ejecutar su bucket y eliminar archivos en función de una condición previa.
Tendrá que escribir un código (bash, python) encima.
Puede descargar s3cmd desde http://s3tools.org/s3cmd
script de shell para eliminar depósitos antiguos utilizando la
fuente de utilidad 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
solo le da al video no el resto?
No, S3 es solo un almacén de datos. Tendrá que usar algún cliente externo para eliminar periódicamente los archivos antiguos.
Encontré una solución mucho más rápida para eliminar lotes usando 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";
}
Referencia para la eliminación por lotes /programming//a/41734090/1589444
Referencia para manejar archivos con espacio con 100% de casos de paso /programming/36813327/how-to-display-only-files-from-aws-s3-ls-command