使用S3 LifeCyle规则与Spatie Laravel备份
#php #laravel #s3

aws S3具有称为“生活方式规则”的功能,可让您定义规则以在对象上运行一系列过渡,例如更改其存储类或到期(删除)它们。

这对于节省成本并通过删除您不需要永远保留的对象来清理对象列表可能很有用。
您可以依靠AWS来获得到期逻辑,而无需为您进行计划的事件进行编程。

生命周期规则可以针对整个存储桶,具有路径前缀的对象或具有特定标签的对象。

Spatie Laravel Backup是用于获取网站/数据库备份的流行Laravel包。

可以将其配置为写入各种“磁盘”。如果您使用的是S3磁盘,则可以标记通过生命周期规则定位的备份。

在S3中创建规则并针对标签

S3 Console screenshot showing Management lifecycle rules
从您的存储桶中,转到管理并创建生命周期规则。

在我的情况下,我将针对一个名为fadeout的标签,其值为true

此规则将在30天后将对象转换为标准的不频繁访问存储类,然后在60天后删除它们。它也仅适用于150kb以上的对象。

标记备份,laravel备份上传

要标记备份对象以使生命周期规则生效,您需要为Laravel fileysystems.php配置文件一个选项。

假设您使用的是s3磁盘,则需要在S3配置数组中添加backup_options值:

's3' => [
  'driver' => 's3',
  'key' => env('AWS_ACCESS_KEY_ID'),
  'secret' => env('AWS_SECRET_ACCESS_KEY'),
  'region' => env('AWS_DEFAULT_REGION'),
  'bucket' => env('AWS_BUCKET'),
  'url' => env('AWS_URL'),
  'backup_options' =>
     ['Tagging' => 'fadeout=true', 'visibility'=>'private'],
],

备份默认情况下是私有的,但是由于我们覆盖了选项数组,我们需要再次指定它。
如图所示,Tagging键的格式编码。
如图所示。

将其保留在适当的情况下,您可以保留最近的备份而无需混乱桶:)