जवाबों:
अब अमेज़न के पास बाल्टी नीतियों को स्वचालित रूप से सामग्री को समाप्त करने की क्षमता है:
http://docs.amazonwebservices.com/AmazonS3/latest/UG/ObjectExpiration.html
अमेज़ॅन ने इस बीच S3 जीवन चक्र पेश किया है (परिचयात्मक ब्लॉग पोस्ट अमेज़ॅन S3 - ऑब्जेक्ट समाप्ति ) देखें, जहां आप एक बाल्टी में वस्तुओं के लिए दिनों में अधिकतम आयु निर्दिष्ट कर सकते हैं - S3 एपीआई या AWS प्रबंधन के माध्यम से इसके उपयोग के विवरण के लिए ऑब्जेक्ट समाप्ति देखें कंसोल।
आप अपनी बाल्टी के माध्यम से चलाने और पूर्व शर्त के आधार पर फ़ाइलों को हटाने के लिए स्क्रिप्ट लिखने के लिए s3cmd का उपयोग कर सकते हैं।
आपको इसके ऊपर कुछ कोड (bash, python) लिखना होगा।
आप s3cmd को http://s3tools.org/s3cmd से डाउनलोड कर सकते हैं
शेल स्क्रिप्ट s3cmd उपयोगिता
स्रोत का उपयोग करके पुरानी बाल्टियाँ हटाने के लिए :
http://shout.setfive.com/2011/12/05/de हटाना-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
बस वीडियो को बाकी नहीं देता है।
नहीं, S3 सिर्फ एक डेटास्टोर है। आपको पुरानी फ़ाइलों को समय-समय पर हटाने के लिए कुछ बाहरी ग्राहक का उपयोग करना होगा।
मुझे AWS क्ली का उपयोग करके बहुत तेजी से समाधान हटाने वाला बैच मिला
#!/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";
}
बैच हटाने के लिए संदर्भ /programming//a/41734090/1589444
100% पास मामले के साथ अंतरिक्ष के साथ फ़ाइल को संभालने के लिए संदर्भ /programming/36813327/how-to-display-only-files-from-aws-s3-ls-command