簡體   English   中英

通過 php sdk 過期對象 s3

[英]expiration object s3 through php sdk

我想在 s3 上為對象設置到期日期我創建這樣的對象:

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

但是當我在 aws S3 Console 上檢查文件時,對象會保留:

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 控制台(網絡版)中,單擊存儲桶
  2. 選擇屬性 展開生命周期
  3. 添加規則出現。 點擊它。
  4. 使用您自己的規則集完成向導

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM