我正在撰寫此 S3 存盤桶生命周期規則:
lifecycle_rules = [
{
id = "log"
enabled = true
prefix = "log/"
tags = {
"rule" = "log"
"autoclean" = "true"
}
expiration = {
days = 365
}
}
]
下面提供了bucket的ASCII模擬圖: 日志每天動態寫入這個bucket中。一些在檔案夾中logs/,一些在子檔案夾中,一些在failed_logs/存盤桶的根檔案夾中。
BUCKET/
|
nonlogfile.exe
log_file_that_i_DONT_wanna_delete.log
logs/
|
file1 (Created 2021-01-01)
file2 (Created 2021-01-02)
failed_logs/
|
file3 (Created 2021-01-03)
file4 (Created 2021-01-04)
我的目標是使log/檔案夾中的每個檔案(及其子檔案夾failed_logs在 365 天后過期。
`file1` would expire at 2022-01-01
`file2` would expire at 2022-01-02
`file3` would expire at 2022-01-03
`file4` would expire at 2022-01-04
然而
nonlogfile.exe
log_file_that_i_DONT_wanna_delete.log
永遠不會過期。
Terraform 的aws_s3_bucket 檔案指出:
該
lifecycle_rule物件支持以下內容:
prefix-(可選)標識一個或多個應用規則的物件的物件鍵前綴。
tags- (可選)指定物件標簽鍵和值。
- 看不懂
prefix屬性 - 我的檔案沒有被標記
How can I target them as explained above, based on their location on the bucket?
uj5u.com熱心網友回復:
S3 結構說明
prefix 屬性只是 s3 物件的路徑減去存盤桶名稱。如果您有以下 S3“目錄”,s3://ec-integration-files/logs/則前綴值就是logs/.
該屬性被命名為前綴而不是路徑,因為雖然 s3 在技術上看起來像一個目錄樹結構,但它是平面存盤。但是,管理控制臺顯示物件就好像它們存盤在目錄結構中一樣,并且它使用前綴來執行此操作。
另一點澄清,您可以在根(或任何深度)有兩個名為
logsand 的物件logs/。其中一個將顯示為管理控制臺中的目錄,另一個顯示為檔案物件,但它們實際上只是兩個名稱不同的物件
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/360737.html
標籤:amazon-web-services amazon-s3 terraform terraform-provider-aws amazon-s3-bucket
