Im Moment werde ich diese Lösung verwenden:s3cmd ls s3://mybucket/mypath/ |ruby -rdate -ne 'date, time, size, uri = $_.split; days = (Time.now - Date.parse(date).to_time) / 60/60/24; puts uri if days > 2' |xargs s3cmd del
Amazon S3 hat mit Object Expiration eine neue Funktion angekündigt, mit der Sie das Löschen Ihrer Objekte nach einem vordefinierten Zeitraum planen können. Durch die Verwendung von Object Expiration zum Planen des regelmäßigen Entfernens von Objekten müssen Sie keine Objekte zum Löschen identifizieren und Löschanforderungen an Amazon S3 senden.
Sie können Objektablaufregeln für eine Reihe von Objekten in Ihrem Bucket definieren. Mit jeder Objektablaufregel können Sie ein Präfix und einen Ablaufzeitraum in Tagen angeben. Das Präfixfeld (z. B.
logs/) identifiziert die Objekte, die der Ablaufregel unterliegen, und der Ablaufzeitraum gibt die Anzahl der Tage ab dem Erstellungsdatum (dh dem Alter) an, nach denen Objekte entfernt werden sollen. Sobald die Objekte ihr Ablaufdatum überschritten haben, werden sie zum Löschen in die Warteschlange gestellt. Die Lagerung von Objekten am oder nach ihrem Ablaufdatum wird Ihnen nicht in Rechnung gestellt.
Das ist ein ziemlich stumpfes Tool von Amazon. es macht was es verspricht! Wenn Sie eine genauere Kontrolle über das Löschen benötigen, müssen Sie die alte DELETE-Methode verwenden. Eine andere Möglichkeit besteht darin, bis zu 1000 verschiedene Objektablaufregeln (und 1000 verschiedene Präfixe) zu haben. Sie sind immer noch auf 1000 begrenzt.
1οδεMεδιϲ
13
Dadurch werden die "älteren, bereits vorhandenen Dateien" nicht gelöscht. Es wird ab dem Zeitpunkt wirksam, an dem Sie es erstellen.
Harshdeep
1
Diese Regel kann für den gesamten Bucket festgelegt werden, jedoch nicht für einzelne Ordner im Bucket.
Nikhil Rao
5
@ Harshdeep - also nicht wirklich. "Nachdem eine Objektablaufregel hinzugefügt wurde, wird die Regel auf Objekte angewendet, die bereits im Bucket vorhanden sind, sowie auf alle neuen Objekte, die dem Bucket hinzugefügt werden, nachdem die Regel erstellt wurde." aws.amazon.com/blogs/aws/amazon-s3-object-expiration
Slawomir
1
@Slawomir Wie lange dauert es, bis eine neue Ablaufregel für vorhandene Objekte im Bucket wirksam wird?
Nur Link-Antworten sind nicht großartig. Sie sollten einige relevante Informationen darüber enthalten, was dieser Link bietet. Diese Antwort wird unbrauchbar, wenn der Link jemals stirbt. Siehe diesen Beitrag meta.stackexchange.com/a/8259/286322
Novocaine
1
Sie können AWS S3-Lebenszyklusregeln verwenden, um die Dateien abzulaufen und zu löschen. Sie müssen lediglich den Bucket auswählen, auf die Schaltfläche "Lebenszyklusregeln hinzufügen" klicken und ihn konfigurieren. AWS kümmert sich dann um sie.
In dem folgenden Blog-Beitrag von Joe finden Sie schrittweise Anleitungen. Eigentlich ist es ganz einfach:
Dieses Skript funktioniert nicht für das von mir gewünschte Szenario, in dem Objekte gelöscht werden, die älter als die angegebene Zeit sind. Die Zeile IF (($ CURRENT_DATE - $ OBJ.LastModified) .Days -le $ EXPIRY_DAYS) ... sollte eigentlich IF (($ CURRENT_DATE - $ OBJ.LastModified) .Days -ge $ EXPIRY_DAYS) sein ...
s3cmd ls s3://mybucket/mypath/ |ruby -rdate -ne 'date, time, size, uri = $_.split; days = (Time.now - Date.parse(date).to_time) / 60/60/24; puts uri if days > 2' |xargs s3cmd del
Antworten:
Amazon hat kürzlich den Objektablauf eingeführt .
quelle
Hier finden Sie einige Informationen dazu ...
http://docs.amazonwebservices.com/AmazonS3/latest/dev/ObjectExpiration.html
Hoffe das hilft.
quelle
Sie können AWS S3-Lebenszyklusregeln verwenden, um die Dateien abzulaufen und zu löschen. Sie müssen lediglich den Bucket auswählen, auf die Schaltfläche "Lebenszyklusregeln hinzufügen" klicken und ihn konfigurieren. AWS kümmert sich dann um sie.
In dem folgenden Blog-Beitrag von Joe finden Sie schrittweise Anleitungen. Eigentlich ist es ganz einfach:
https://www.joe0.com/2017/05/24/amazon-s3-how-to-delete-files-older-than-x-days/
Ich hoffe es hilft!
quelle
So implementieren Sie es mithilfe einer CloudFormation-Vorlage:
Dadurch wird eine Lebenszyklusregel erstellt, die von @Ravi Bhatt erläutert wird
Lesen Sie dazu mehr: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html
Funktionsweise der Verwaltung des Objektlebenszyklus: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
quelle
Sie können das folgende Powershell-Skript verwenden, um abgelaufene Objekte zu löschen
x days
.quelle