Как удалить или удалить старые файлы на S3? - PullRequest
56 голосов
/ 24 января 2012

Существуют ли решения для удаления файлов старше x дней?

Ответы [ 4 ]

77 голосов
/ 24 января 2012

Amazon недавно представила срок действия объекта .

Amazon S3 объявляет об истечении срока действия объекта

Amazon S3 объявил о новой функции истечения срока действия объекта, которая позволяет планировать удаление ваших объектов по истечении предварительно определенного периода времени.Использование истечения срока действия объекта для планирования периодического удаления объектов устраняет необходимость идентифицировать объекты для удаления и отправлять запросы на удаление в Amazon S3.

Вы можете определить правила истечения срока действия объекта для набора объектов в своем сегменте.Каждое правило истечения срока действия объекта позволяет указать префикс и срок действия в днях.Поле префикса (например, logs/) идентифицирует объект (ы), на который распространяется правило истечения срока действия, а период истечения указывает число дней с даты создания (т. Е. Возраста), после которого объект (ы) должен быть удален.По истечении срока годности объектов они будут помещены в очередь для удаления.Вам не будет выставлен счет за хранение объектов в срок или после истечения срока их действия.

4 голосов
/ 24 января 2012

Вот некоторая информация о том, как это сделать ...

http://docs.amazonwebservices.com/AmazonS3/latest/dev/ObjectExpiration.html

Надеюсь, это поможет.

0 голосов
/ 03 декабря 2018

Вы можете использовать следующий скрипт Powershell для удаления объекта, срок действия которого истек после x days.

[CmdletBinding()]
Param(  
  [Parameter(Mandatory=$True)]
  [string]$BUCKET_NAME,             #Name of the Bucket

  [Parameter(Mandatory=$True)]
  [string]$OBJ_PATH,                #Key prefix of s3 object (directory path)

  [Parameter(Mandatory=$True)]
  [string]$EXPIRY_DAYS             #Number of days to expire
)

$CURRENT_DATE = Get-Date
$OBJECTS = Get-S3Object $BUCKET_NAME -KeyPrefix $OBJ_PATH
Foreach($OBJ in $OBJECTS){
    IF($OBJ.key -ne $OBJ_PATH){
        IF(($CURRENT_DATE - $OBJ.LastModified).Days -le $EXPIRY_DAYS){
            Write-Host "Deleting Object= " $OBJ.key
            Remove-S3Object -BucketName $BUCKET_NAME -Key $OBJ.Key -Force
        }
    }
}
0 голосов
/ 29 октября 2018

Вы можете использовать правила жизненного цикла AWS S3 для истечения срока действия файлов и их удаления.Все, что вам нужно сделать, это выбрать корзину, нажать кнопку «Добавить правила жизненного цикла» и настроить ее, и AWS позаботится о них за вас.

Вы можете отослать приведенную ниже запись в блоге от Джо для получения пошаговой инструкции.инструкции.На самом деле все довольно просто:

https://www.joe0.com/2017/05/24/amazon-s3-how-to-delete-files-older-than-x-days/

Надеюсь, это поможет!

...