您可以通過基於最後一次訪問時間(LastAccessTime)策略的生命週期規則來自動監測資料的訪問模式並識別冷資料,然後將識別出來的冷資料進行儲存類型的轉換,從而達到資料的冷熱階層式存放區,最終降低儲存成本。
使用情境
多媒體情境
某網站的視頻、圖片儲存在OSS上,歷史資料會逐漸從熱轉冷。因此,您可能需要將網站內長時間不被訪問的資料儲存為低頻訪問類型。此外,部分資料距離上傳時間已久,但仍然是熱門訪問資料,這部分資料需要繼續儲存為標準儲存類型。在該情境下應選用基於最後一次訪問時間的生命週期規則,用於自動識別冷熱資料並進行階層式存放區,從而降低儲存成本。
相簿或網盤情境
對於長時間沒有訪問的冷資料,希望設定自訂轉儲天數,自動將冷資料轉為低頻訪問類型,並確保資料的即時訪問。
生命科學情境
基因測序產生的大量業務資料,往往需要根據資料的最後訪問時間而非最後修改時間來判斷資料的冷熱。按以往,客戶只能手動通過日誌分析或其他方式進行資料冷熱的分層管理。但如果選用基於最後一次訪問時間的生命週期規則,則可實現由服務端根據最後訪問時間來自動識別冷熱資料並實現資料階層式存放區。不僅如此,您還可以在同一條生命週期規則中同時結合最後訪問時間與最後修改時間的策略,從而更靈活地進行資料管理。
使用限制
不支援刪除資料
不支援基於最後一次訪問時間的生命週期規則進行資料刪除。
匹配條件
生命週期規則目前僅支援根據首碼和標籤進行匹配,不支援萬用字元匹配、尾碼匹配以及正則匹配。
片段到期限制
不支援對重疊首碼的Object設定兩條或兩條以上包含片段到期策略的生命週期規則。樣本如下:
樣本一
您對整個Bucket設定了一條包含片段到期策略的生命週期規則,則不支援對Bucket中任意首碼的Object再設定一條包含片段到期策略的生命週期規則。
樣本二
您對某個Bucket中首碼為dir1設定了一條包含片段到期策略的生命週期規則,則不支援對該Bucket中包含重疊首碼(例如dir1/dir2)的Object再設定一條包含片段到期策略的生命週期規則。
注意事項
規則數量
單個Bucket最多支援配置1000條生命週期規則,單條生命週期規則中可同時包含最後一次修改時間以及最後一次訪問時間的策略。
費用說明
Object監控管理費用
開啟訪問跟蹤後會產生Object監控管理費,但OSS暫不收取該費用。
低頻訪問不足規定時間長度容量費用
低頻訪問類型Object有最低30天的儲存時間長度要求。如果儲存時間長度未達到最低天數要求,還會產生不足規定時間長度容量費用。該計費項目結合生命週期規則的樣本說明如下:
樣本一:標準類型Object在其建立10天后,通過生命週期將其轉換為低頻訪問類型,過了5天后又將其轉回標準儲存。此時會產生15天的低頻訪問不足規定時間長度容量費用。
樣本二:標準類型Object在其建立10天后,通過生命週期將其轉換為低頻訪問類型,過了15天后將其刪除。此時會產生5天的低頻訪問不足規定時間長度容量費用。
更多資訊,請參見儲存費用。
低頻訪問資料取回費用
訪問低頻訪問類型檔案產生的費用,按資料取回量計費。更多資訊,請參見資料處理費用。
請求費用
通過生命週期規則轉換Object儲存類型時涉及請求費用。更多資訊,請參見請求費用。
覆蓋語義
PutBucketLifecycle為覆蓋語義。例如,某個Bucket已配置了生命週期規則Rule1,您需要在Rule1基礎上繼續追加生命週期規則Rule2,您需要執行以下操作。
調用GetBucketLifecycle介面擷取當前生命週期規則配置Rule1。
在Rule1基礎上疊加Rule2。
調用PutBucketLifecycle介面更新生命週期規則為Rule1+Rule2。
生效時間
生命週期規則建立後的24小時內,OSS會載入規則。規則載入完成後,OSS會在每天的北京時間8:00開始執行規則。
執行完成時間
對於未配置標籤的生命週期規則
華東1(杭州)、華東2(上海)、華北2(北京)、華北 3(張家口)、華北6(烏蘭察布)、華南1(深圳)、新加坡地區執行10億或以下次生命週期相關操作(包括Object儲存類型轉換以及片段到期),可在24小時內完成。如果生命週期相關操作超出10億次,則可能超出24小時。
其他地區執行1億或以下次生命週期相關操作,可在24小時內完成。如果生命週期相關操作超出1億次,則可能超出24小時。
對於已配置標籤的生命週期規則
華東1(杭州)、華東2(上海)、華北2(北京)、華北 3(張家口)、華北6(烏蘭察布)、華南1(深圳)、新加坡地區執行5億或以下次生命週期相關操作(包括Object儲存類型轉換以及片段到期),可在24小時內完成。如果生命週期相關操作超出5億次,則可能超出24小時。
其他地區執行5千萬或以下次生命週期相關操作,可在24小時內完成。如果生命週期相關操作超出5千萬次,則可能超出24小時。
如果儲存空間開啟了版本控制,則對Object的每個版本均記為一次操作。
最後一次訪問時間更新策略
在生命週期頁面開啟啟用訪問跟蹤開關後,OSS預設以訪問跟蹤開啟時間作為Bucket中所有Object的最後一次訪問時間,如果24小時內,同一個Object有多次GetObject請求,則OSS會將首次GetObject的請求時間記錄為Object最後一次訪問時間。其他動作(例如PutObject、CopyObject等)會根據操作時間更新Object的最後一次訪問時間。
關於哪些操作會更新Object的最後一次訪問時間的更多資訊,請參見哪些操作會更新Object的LastAccessTime?。
轉儲的Object類型
基於最後一次訪問時間的生命週期規則支援將Object從標準儲存類型轉為低頻訪問類型,您還可以選擇當Object被訪問後是否自動轉回標準儲存類型。
基於最後一次訪問時間的生命週期規則支援將Object從標準儲存或低頻訪問類型轉為歸檔、冷歸檔或深度冷Archive Storage類型,也可以選擇將Object從歸檔轉為冷歸檔或深度冷Archive Storage類型。如果您需要將Object從標準儲存或低頻訪問類型轉換為歸檔、冷歸檔或深度冷Archive Storage類型,請提交工單申請轉換為歸檔、冷歸檔或深度冷歸檔類型的許可權,申請通過後您需要指定轉換的目標儲存類型。
重要工單申請通過後,如果您基於最後一次訪問時間策略將Object從標準儲存或低頻訪問類型轉為歸檔、冷歸檔或深度冷歸檔類型,則Bucket中歸檔、冷歸檔或深度冷歸檔類型Object的最後一次訪問時間預設為該Bucket開啟訪問跟蹤的時間。
在開通了OSS-HDFS服務的Bucket中配置生命週期規則
如果您對開通了OSS-HDFS服務的Bucket設定或更新為匹配整個Bucket的生命週期規則,需通過NOT元素排除.dlsdata/
,避免因生命週期規則引發的Object儲存類型轉換行為影響OSS-HDFS資料讀寫。
操作步驟
使用OSS控制台
登入OSS管理主控台。
單擊Bucket 列表,然後單擊目標Bucket名稱。
在左側導覽列, 選擇資料管理 > 生命週期。
在生命週期頁面,開啟啟用訪問跟蹤開關,然後單擊創建規則。
在建立生命週期規則面板,按如下說明配置生命週期規則。
儲存空間未開啟版本控制
地區
配置項
說明
基礎設定
狀態
設定生命週期規則的狀態,可選擇啟動或禁用。
啟動生命週期規則後,將按照配置的生命週期規則轉換資料存放區類型。
禁用生命週期規則後,將中斷生命週期任務。
策略
選擇生命週期規則作用的Object。您可以選擇按首碼匹配或設定到整個Bucket。
是否允許首碼重疊
OSS預設會檢查各個生命週期規則的首碼是否重疊。例如,您設定了以下兩條包含重疊首碼的生命週期規則:
規則1
指定該Bucket內所有首碼為dir1/的Object在距離最後一次訪問時間180天后轉為低頻訪問類型。
規則2
指定該Bucket內所有首碼為dir1/dir2/的Object在距離最後一次訪問時間30天后轉Archive Storage類型。
在未選中該選項的情況下,因後台檢測到dir1/dir2/目錄下的Object同時匹配兩條轉換規則,因此會拒絕設定以上兩條生命週期規則。
在選中該選項的情況下,dir1/dir2/下的Object會在30天后轉Archive Storage類型。dir1/下的其他Object會在180天后轉為低頻訪問類型。
前綴
輸入規則要匹配的Object名稱的首碼。
首碼設定為img,表示匹配名稱以img開頭的所有Object,例如imgtest.png、img/example.jpg等。
首碼設定為img/,表示匹配名稱以img/開頭的所有Object,例如img/example.jpg、img/test.jpg等。
標籤
生命週期規則僅針對擁有指定標籤Object生效。例如選擇了按首碼匹配,設定首碼為img,並設定標籤的key為a,value為1。則該規則將匹配所有名稱以img開頭,標籤為a=1的Object。關於對象標籤的更多資訊,請參見對象標籤。
NOT
NOT選項用於設定生命週期規則對指定首碼和標籤的Object不生效。
重要開啟NOT選項時,首碼和標籤必須至少存在一項,即同時設定首碼和標籤或者只設定首碼或標籤。
NOT語義定義標籤中的key不支援與標籤配置項中定義的key相同。
開啟NOT選項後,不支援設定片段到期策略。
文件大小
指定生命週期規則生效的檔案大小。
指定最小檔案:生命週期規則對大於該值的檔案大小生效。取值大於0 B,小於5 TB。
指定最大檔案:生命週期規則對小於該值的檔案大小生效。取值大於0 B,小於等於5 TB。
重要如果在同一條生命週期中,同時配置了指定最小檔案和指定最大檔案:
確保指定最大檔案的值大於指定最小檔案的值。
不支援配置片段執行策略。
不支援配置清除刪除標記策略。
檔案執行原則設定
檔案時間策略
選擇Object到期策略,可選擇指定天數、指定日期和不啟用。選擇不啟用時,檔案到期策略不生效。
生命週期管理規則
配置轉換Object儲存類型的規則,資料可以轉換為如下類型:
低頻儲存類型(資料被訪問後,依舊保留在低頻檔)
低頻儲存類型(資料一旦被訪問,回到標準檔)
Archive Storage
冷Archive Storage
深度冷Archive Storage
例如:當您選擇了最後一次訪問時間策略,然後將逾期天數設定為30,並指定資料在超出指定到期天數後將自動轉換為低頻儲存類型(資料被訪問後,依舊保留在低頻檔),則最後訪問日期為2021年09月01日的Object會在2021年10月01日被轉換為指定的儲存類型。
片段執行原則設定
碎片過期策略
設定對到期片段執行的操作。如果選中了標籤,則無法配置該選項。您可以選擇片段到期策略的指定天數或指定日期,也可以選擇不啟用片段到期策略。當選擇不啟用時,片段到期策略不生效。
重要生命週期規則至少包含檔案到期策略或片段到期策略。
片段規則
根據片段到期策略選擇的到期天數或到期日期設定片段何時到期,片段到期後會被自動刪除,且刪除後不可恢複。
儲存空間已開啟版本控制
開啟版本控制後,基礎設定與片段執行原則設定地區涉及的配置項,與未開啟版本控制的配置方法相同。以下表格僅介紹與未開啟版本控制相比,開啟版本控制後配置項存在的差異。
地區
配置項
說明
目前的版本檔案執行原則設定
清理對象刪除標記
開啟版本控制後,清除策略中增加了清理對象刪除標記選項,其他選項與未開啟版本控制時相同。
選擇此選項後,如果當前Object僅有一個版本且為刪除標記時,則OSS將刪除到期Object的刪除標記。如果當前Object有多個版本,且Object的最新版本為刪除標記時,則OSS將保留該刪除標記。關於刪除標記的更多資訊,請參見刪除標記。
歷史版本檔案執行原則設定
檔案時間策略
設定歷史版本檔案的到期策略,可選擇指定天數和不啟用。當選擇不啟用時,檔案到期策略不生效。
生命週期管理規則
設定一個到期天數N,歷史版本的Object會在其被轉換為歷史版本的N天后,並在到期的第二天執行轉換儲存類型操作。例如設定為30,則在2021年09月01日被轉為歷史版本的Object會在2021年10月01日被轉換為指定儲存類型。
重要您可以通過Object下一個版本的最後一次訪問時間確定Object被轉為歷史版本的時間。
單擊確定。
生命週期規則儲存成功後,您可以在策略列表中查看已設定的生命週期規則。
使用阿里雲SDK
僅Java SDK、Go SDK支援基於最後一次訪問時間建立生命週期規則。建立基於最後一次訪問時間的生命週期規則前,您需要為指定Bucket開啟訪問跟蹤功能。關於基於最後一次訪問時間的生命週期規則的程式碼範例,請參見SDK簡介。
Java
import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.*;
import java.util.ArrayList;
import java.util.List;
public class Demo {
public static void main(String[] args) throws Exception {
// Endpoint以華東1(杭州)為例,其它Region請按實際情況填寫。
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// 填寫Bucket名稱,例如examplebucket。
String bucketName = "examplebucket";
// 建立OSSClient執行個體。
OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
try {
ossClient.putBucketAccessMonitor(bucketName, AccessMonitor.AccessMonitorStatus.Enabled.toString());
// 指定生命週期規則1。規則中指定首碼為logs,且小於等於64 KB的所有檔案在距離最後一次訪問時間30天后轉為低頻訪問類型。且再次訪問首碼為logs的檔案時,這些檔案仍保留為低頻訪問類型。
LifecycleRule lifecycleRule = new LifecycleRule("rule1", "logs", LifecycleRule.RuleStatus.Enabled);
List<LifecycleRule> lifecycleRuleList = new ArrayList<LifecycleRule>();
SetBucketLifecycleRequest setBucketLifecycleRequest = new SetBucketLifecycleRequest(bucketName);
LifecycleRule.StorageTransition storageTransition = new LifecycleRule.StorageTransition();
storageTransition.setStorageClass(StorageClass.IA);
storageTransition.setExpirationDays(30);
storageTransition.setIsAccessTime(true);
storageTransition.setReturnToStdWhenVisit(false);
storageTransition.setAllowSmallFile(true);
List<LifecycleRule.StorageTransition> storageTransitionList = new ArrayList<LifecycleRule.StorageTransition>();
storageTransitionList.add(storageTransition);
lifecycleRule.setStorageTransition(storageTransitionList);
lifecycleRuleList.add(lifecycleRule);
// 指定生命週期規則2。規則中指定首碼為dir,且大於64 KB的所有歷史版本檔案在距離最後一次訪問時間10天后轉為低頻訪問類型。且再次訪問首碼為dir的檔案時,這些檔案將轉為標準儲存。
LifecycleRule lifecycleRule2 = new LifecycleRule("rule2", "dir", LifecycleRule.RuleStatus.Enabled);
LifecycleRule.NoncurrentVersionStorageTransition noncurrentVersionStorageTransition = new LifecycleRule.NoncurrentVersionStorageTransition();
noncurrentVersionStorageTransition.setStorageClass(StorageClass.IA);
noncurrentVersionStorageTransition.setNoncurrentDays(10);
noncurrentVersionStorageTransition.setIsAccessTime(true);
noncurrentVersionStorageTransition.setReturnToStdWhenVisit(true);
noncurrentVersionStorageTransition.setAllowSmallFile(false);
List<LifecycleRule.NoncurrentVersionStorageTransition> noncurrentVersionStorageTransitionList = new ArrayList<LifecycleRule.NoncurrentVersionStorageTransition>();
noncurrentVersionStorageTransitionList.add(noncurrentVersionStorageTransition);
lifecycleRule2.setNoncurrentVersionStorageTransitions(noncurrentVersionStorageTransitionList);
lifecycleRuleList.add(lifecycleRule2);
setBucketLifecycleRequest.setLifecycleRules(lifecycleRuleList);
// 設定生命週期規則。
ossClient.setBucketLifecycle(setBucketLifecycleRequest);
} catch (OSSException oe) {
System.out.println("Caught an OSSException, which means your request made it to OSS, "
+ "but was rejected with an error response for some reason.");
System.out.println("Error Message:" + oe.getErrorMessage());
System.out.println("Error Code:" + oe.getErrorCode());
System.out.println("Request ID:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Caught an ClientException, which means the client encountered "
+ "a serious internal problem while trying to communicate with OSS, "
+ "such as not being able to access the network.");
System.out.println("Error Message:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}
Python
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
from oss2.models import LifecycleRule, BucketLifecycle, StorageTransition, NoncurrentVersionStorageTransition
# 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# yourEndpoint填寫Bucket所在地區對應的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
# 填寫Bucket名稱,例如examplebucket。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')
# 指定生命週期規則1。規則中指定首碼為logs,且大於64 KB的所有檔案在距離最後一次訪問時間30天后轉為低頻訪問類型。且再次訪問首碼為logs的檔案時,這些檔案仍保留為低頻訪問類型。
rule1 = LifecycleRule('rule1', 'logs', status=LifecycleRule.ENABLED)
rule1.storage_transitions = [StorageTransition(days=30, storage_class=oss2.BUCKET_STORAGE_CLASS_IA, is_access_time=True, return_to_std_when_visit=False, allow_small_file=True)]
# 指定生命週期規則2。規則中指定首碼為dir,且大於64 KB的所有歷史版本檔案在距離最後一次訪問時間10天后轉為低頻訪問類型。且再次訪問首碼為dir的檔案時,這些檔案將轉為標準儲存。
rule2 = LifecycleRule('rule2', 'dir', status=LifecycleRule.ENABLED)
rule2.noncurrent_version_sotrage_transitions = [NoncurrentVersionStorageTransition(10, oss2.BUCKET_STORAGE_CLASS_IA, is_access_time=True, return_to_std_when_visit=True, allow_small_file=False)]
lifecycle = BucketLifecycle([rule1, rule2])
# 設定生命週期規則。
result = bucket.put_bucket_lifecycle(lifecycle)
print('設定生命週期成功,返回狀態為:' + str(result.status))
Go
package main
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
"os"
)
func main() {
// yourBucketName填寫Bucket名稱。
bucketName := "yourBucketName"
// 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// 建立OSSClient執行個體。
// yourEndpoint填寫Bucket對應的Endpoint,以華東1(杭州)為例,填寫為https://oss-cn-hangzhou.aliyuncs.com。其它Region請按實際情況填寫。
client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider))
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
isTrue := true
isFalse := false
// 指定生命週期規則1。規則中指定首碼為logs,且小於等於64 KB的所有檔案在距離最後一次訪問時間30天后轉為低頻訪問類型。且再次訪問首碼為logs的檔案時,這些檔案仍保留為低頻訪問類型。
rule1 := oss.LifecycleRule{
ID: "rule1",
Prefix: "logs",
Status: "Enabled",
Transitions: []oss.LifecycleTransition{
{
Days: 30,
StorageClass: oss.StorageIA,
IsAccessTime: &isTrue,
ReturnToStdWhenVisit: &isFalse,
AllowSmallFile: &isTrue,
},
},
}
// 指定生命週期規則2。規則中指定首碼為dir,且大於64 KB的所有歷史版本檔案在距離最後一次訪問時間10天后轉為低頻訪問類型。且再次訪問首碼為dir的檔案時,這些檔案將轉為標準儲存。
rule2 := oss.LifecycleRule{
ID: "rule2",
Prefix: "dir",
Status: "Enabled",
NonVersionTransitions: []oss.LifecycleVersionTransition{
{
NoncurrentDays: 10,
StorageClass: oss.StorageIA,
IsAccessTime: &isTrue,
ReturnToStdWhenVisit: &isTrue,
AllowSmallFile: &isFalse,
},
},
}
// 設定生命週期規則。
var rules = []oss.LifecycleRule{rule1, rule2}
err = client.SetBucketLifecycle(bucketName, rules)
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
fmt.Printf("%s\n", "set bucket life cycle success")
}
使用命令列工具ossutil
關於使用ossutil設定生命週期規則的具體操作, 請參見添加或修改生命週期規則。
使用REST API
如果您的程式自訂要求較高,您可以直接發起REST API請求。直接發起REST API請求需要手動編寫代碼計算簽名。更多資訊,請參見PutBucketLifecycle。
常見問題
如果針對Bucket內相同首碼的Object建立了兩條生命週期規則,其中一條規則基於最後一次修改時間,另外一條規則基於最後一次訪問時間,最終執行效果會怎麼樣?
例如,針對目標儲存空間examplebucket建立了兩條生命週期規則,規則一指定該Bucket內所有首碼為doc的Object在距離最後一次修改時間30天后刪除,規則二指定該Bucket內所有首碼為doc的Object在距離最後一次訪問時間30天后轉低頻訪問類型。
由於OSS執行生命週期規則時遵循以使用者較低開銷為原則,因此僅規則一生效。原因是規則一中指定30天后直接刪除與首碼匹配的Object,此後將不再產生費用。而規則二轉為低頻訪問類型仍會收取相關儲存費用或者資料取回費用等。
已配置的生命週期規則變更後何時生效,原有規則命中的資料如何處理?
例如,您已經針對首碼為er
的Object配置了距離最後一次訪問時間30天后轉低頻、又過了30天后當Object被訪問時選擇將其轉為標準儲存類型的生命週期規則。但是在距離最後一次訪問時間的35天后,您將生命週期指定的首碼er
變更為re
,此時原有Object僅轉存為低頻訪問類型,轉存為標準儲存類型的行為不生效。變更規則命中Object的最後一次訪問時間也是從Bucket開啟訪問跟蹤時開始統計。
在已開啟版本控制的Bucket內開啟智能分層,Bucket內不同版本的Object儲存層級如何分布?
在已開啟版本控制Bucket內的每一個Object都有唯一的版本ID,且不同版本ID的Object相互獨立。因此可能會出現歷史版本Object為低頻訪問類型,但是最新版本Object為標準儲存類型的情況。
是否支援關閉訪問跟蹤?
支援,前提是當前Bucket不存在基於最後一次訪問時間的生命週期規則。關閉訪問跟蹤後,系統將停止追蹤Object的最後一次訪問時間資訊。待下一次開啟訪問跟蹤後,將重新重新整理所有Object的最後一次訪問時間。
相關文檔
最後一次訪問時間(LastAccessTime)是Object的一個重要屬性,在計費、生命週期規則等情境中均會涉及。在Bucket開啟訪問跟蹤後,部分針對Object的操作可能會更新Object的LastAccessTime,詳情請參見哪些操作會更新Object的LastAccessTime?