簡體   English   中英

如何在Minio中設置BucketLifeCycleRule?

[英]How to Set BucketLifeCycleRule in Minio?

創建一個 Minio bucket 后,我設置了 bucket 的生命周期規則。 LifeCycleRule 占用僅為 1 天設置的過期變量。 通過 minio 客戶端 (mc) 檢查我的存儲桶狀態時, mc ilm ls mycloud/bucketName ,我注意到生命周期規則已成功應用於指定的存儲桶。 然而,當 1 天后再次查看 Minio 時,桶仍然在那里。 為了正確刪除 Minio Bucket,我還需要添加其他東西到 LifeCycleRule 嗎?

請注意,我一直在使用Minio SDKs Java Client API作為參考。


fun createBucket(bucketName: String){
   client.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build())
   setBucketLifeCycle(bucketName)
}

private fun setBucketLifeCycle(bucketName: String){

   // Setting the expiration for one day.
   val expiration = Expiration(null as ZonedDateTime?, 1, null)

   var lifeCycleRuleList = mutableListOf<LifecycleRule>()

   val lifecycleRuleExpiry = LifecycleRule(
     Status.ENABLED,
     null,
     expiration,
     RuleFilter("expiry/logs"),
     "rule 1",
     null,
     null,
     null)

   lifecycleRuleList.add(lifecycleRuleExpiry)
   var lifecycleConfig = LifecycleConfiguration(lifecycleRuleList)
 
   // Applies the lifecycleConfig on to target bucket.
   client.setBucketLifecycle(SetBucketLifecycleArgs.buider()
     .bucket(bucketName).config(lifecycleConfig).build())
}

問題

  • 我是否在 LifeCycleRule 中遺漏了更多內容?
  • 會不會是因為桶里面有對象,所以桶沒有被自動刪除?
    • 我確實在 minio 客戶端上注意到,當存儲桶上有項目時, mc rb mycloud/bucketName將無法刪除存儲桶,但是使用mc rb -force mycloud/bucketName刪除它會成功刪除它。 有沒有辦法在生命周期參數上指定“強制”?

生命周期規則適用於存儲桶內的對象,而不適用於存儲桶本身。

S3 生命周期配置是一組規則,用於定義 Amazon S3 應用於一組對象的操作。

(參考: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html

因此,這個桶不會被刪除(即使)當其中的所有對象都通過 ILM 策略過期時。

暫無
暫無

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

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