Odpowiedzi:
Amazon ma teraz możliwość ustawienia zasad segmentu, aby automatycznie wygasały treści:
http://docs.amazonwebservices.com/AmazonS3/latest/UG/ObjectExpiration.html
Tymczasem Amazon wprowadził cykle życia S3 (patrz wstępny post na blogu Amazon S3 - Wygaśnięcie obiektu ), w którym można określić maksymalny wiek w dniach dla obiektów w wiadrze - zobacz Wygaśnięcie obiektu, aby uzyskać szczegółowe informacje o jego użyciu za pośrednictwem interfejsu API S3 lub zarządzania AWS Konsola.
Możesz użyć s3cmd do napisania skryptu, który będzie działał przez wiadro i usuwał pliki na podstawie warunku wstępnego.
Musisz na nim napisać kod (bash, python).
Możesz pobrać s3cmd ze strony http://s3tools.org/s3cmd
skrypt powłoki, aby usunąć stare wiadra za pomocą
źródła narzędzia 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
prostu daje wideo nie resztę.
Nie, S3 to tylko magazyn danych. Będziesz musiał użyć klienta zewnętrznego, aby okresowo usuwać stare pliki.
Znalazłem znacznie szybsze rozwiązanie usuwania partii za pomocą 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";
}
Odwołanie do usuwania partii /programming//a/41734090/1589444
Dokumentacja dotycząca obsługi pliku ze spacją ze 100% przypadkiem /programming/36813327/how-to-display-only-files-from-aws-s3-ls-command