我使用aws/aws-sdk-php-laravel来创建存储桶和存储内容。在创建了每个桶之后,我使用putBucketLifecycle()添加了一个生命周期,让它在7天后自动删除,如下所示:
$s3->putBucketLifecycle([
'Bucket' => $bucket,
'Rules' => [
[
'Expiration' => 7,
'ID' => 'expires-after-7-days--' . uniqid(),
'Prefix' => '',
'Status' => 'Enabled',
],
],
]);效果很好..。说大也大吧。7天后,实际上,桶中的所有文件都被清除了。但奇怪的是,水桶本身依然存在。因此,我的S3现在满是空桶:

图像源
所以问题是,我怎样才能把水桶也移除呢?我是不是漏掉了计量器/配置?或者我需要显式地调用deleteBucket()?
发布于 2014-09-08 11:48:48
水桶本身不会删除。生命周期策略仅适用于桶中的对象,尽管名称为“桶生命周期”。
发布于 2015-05-07 17:31:54
是的,您只能使用putBucketLifecycle()删除桶中的对象,因为生命周期规则适用于桶中的对象。
当存储桶中的所有对象都被删除后(过期后),您可以使用以下调用来删除桶
// check if bucket is empty
$s3->listObjects(...);
// or use ListObjects iterator
$s3->getIterator('ListObjects', array('Bucket' => $bucket));
// delete bucket if its empty
$s3->deleteBucket(...);https://stackoverflow.com/questions/25719298
复制相似问题