Antworten:
Amazon hat jetzt die Möglichkeit, Bucket-Richtlinien so festzulegen, dass Inhalte automatisch ablaufen:
http://docs.amazonwebservices.com/AmazonS3/latest/UG/ObjectExpiration.html
Inzwischen hat Amazon S3-Lebenszyklen eingeführt (siehe den einleitenden Blog-Beitrag Amazon S3 - Objektablauf ), in dem Sie ein maximales Alter in Tagen für Objekte in einem Bucket festlegen können. Weitere Informationen zur Verwendung über die S3-API oder das AWS-Management finden Sie unter Objektablauf Konsole.
Sie können s3cmd verwenden, um ein Skript zu schreiben, das Ihren Bucket durchläuft und Dateien basierend auf einer Vorbedingung löscht.
Sie müssen einen Code (Bash, Python) darüber schreiben.
Sie können s3cmd von http://s3tools.org/s3cmd herunterladen
Shell-Skript zum Löschen alter Buckets mit dem Dienstprogramm 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
gibt nur Video nicht den Rest.
Nein, S3 ist nur ein Datenspeicher. Sie müssen einen externen Client verwenden, um die alten Dateien regelmäßig zu löschen.
Ich habe eine viel schnellere Lösung zum Löschen von Batches mit AWS CLI gefunden
#!/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";
}
Referenz für das Löschen von Stapeln /programming//a/41734090/1589444
Referenz für die Behandlung von Dateien mit Speicherplatz mit 100% Pass-Fall /programming/36813327/how-to-display-only-files-from-aws-s3-ls-command