过期对象s3通过PHP sdk



我想为s3上的对象设置一个截止日期,我创建了这个对象:

$this->s3->putObject(array(
'Bucket' => BUCKET,
'Key'=> "path",
'SourceFile'   => $fileTmp,
'Expires' => time()+2*60,
'ACL'    => 'private'
));

但是当我在aws S3控制台检查文件时,对象保持:

Expiry Date:    None
Expiration Rule:    N/A

如何设置对象过期?

像这样使用putBucketLifecycle方法:

    $result = $client->putBucketLifecycleConfiguration([
        'Bucket' => '<string>', // REQUIRED
        'LifecycleConfiguration' => [
            'Rules' => [ // REQUIRED
                [
                    'Expiration' => [
                        'Date' => <integer || string || DateTime>,
                        'Days' => <integer>,
                        'ExpiredObjectDeleteMarker' => true || false,
                    ],
                    'ID' => '<string>',
                    'Prefix' => '<string>',
                    'Status' => 'Enabled|Disabled', // REQUIRED
                ],
                // ...
            ],
],
]);

注意

  1. 此方法将替换现有的所有规则。所以如果你需要添加一个我建议您使用的新规则getBucketLifecycleConfiguration在前面,并合并前面
  2. 生命周期规则只能在前缀(或标签)上设置,不能在对象上设置。
  3. 'prefix'是你的路径,不包括文件名,以斜杠结尾。
资源

https://docs.aws.amazon.com/aws - sdk - php/v3/api/api s3 - 2006 - 03 - 01. - html # putbucketlifecycleconfiguration

生命周期策略是按桶设置的,而不是按文件设置的。

下面是如何为桶设置生命周期策略:

  1. 在AWS S3控制台(web版本)中,单击桶
  2. 上的<
  3. 选择属性/strong>;生命周期扩展
  4. 出现
  5. 添加规则。单击它。
  6. 使用您自己的一组规则完成向导

相关内容

  • 没有找到相关文章

最新更新