日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

并不是所有上傳至OSS的數(shù)據(jù)都需要頻繁訪問,但基于數(shù)據(jù)合規(guī)或者存檔等原因,部分?jǐn)?shù)據(jù)仍需要繼續(xù)以冷存儲類型進(jìn)行保存。或者基于業(yè)務(wù)使用場景,希望批量刪除Bucket內(nèi)不再需要保存的數(shù)據(jù),您可以配置基于最后一次修改時(shí)間(Last Modified Time)的生命周期規(guī)則。如果您希望OSS自動(dòng)監(jiān)測數(shù)據(jù)的訪問模式并識別冷數(shù)據(jù),然后將識別出來的冷數(shù)據(jù)進(jìn)行存儲類型的轉(zhuǎn)換,從而達(dá)到數(shù)據(jù)的冷熱分層存儲,最終降低存儲成本,您可以配置基于最后一次訪問時(shí)間(Last Access Time)的生命周期規(guī)則。

注意事項(xiàng)

  • 本文以華東1(杭州)外網(wǎng)Endpoint為例。如果您希望通過與OSS同地域的其他阿里云產(chǎn)品訪問OSS,請使用內(nèi)網(wǎng)Endpoint。關(guān)于OSS支持的Region與Endpoint的對應(yīng)關(guān)系,請參見訪問域名和數(shù)據(jù)中心

  • 本文以從環(huán)境變量讀取訪問憑證為例。如何配置訪問憑證,請參見配置訪問憑證

  • 本文以O(shè)SS域名新建OSSClient為例。如果您希望通過自定義域名、STS等方式新建OSSClient,請參見初始化

  • 要設(shè)置生命周期規(guī)則,您必須有oss:PutBucketLifecycle權(quán)限;要查看生命周期規(guī)則,您必須有oss:GetBucketLifecycle權(quán)限;要清空生命周期規(guī)則,您必須有oss:DeleteBucketLifecycle權(quán)限。具體操作,請參見為RAM用戶授權(quán)自定義的權(quán)限策略

設(shè)置生命周期規(guī)則

以下代碼分別提供了設(shè)置基于最后一次修改時(shí)間和基于最后一次訪問時(shí)間的生命周期規(guī)則的示例。設(shè)置完成后,如果您希望修改其中的一條或多條生命周期規(guī)則,請參見如何修改其中一條或多條生命周期規(guī)則配置?

基于最后一次修改時(shí)間策略執(zhí)行轉(zhuǎn)換文件存儲類型以及刪除操作

以下代碼用于為examplebucket設(shè)置基于最后一次修改時(shí)間策略的生命周期規(guī)則,規(guī)則中指定命中的Object執(zhí)行轉(zhuǎn)換文件存儲類型及刪除操作。

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
import datetime
from oss2.models import (LifecycleExpiration, LifecycleRule, 
                        BucketLifecycle,AbortMultipartUpload, 
                        TaggingRule, Tagging, StorageTransition,
                        NoncurrentVersionStorageTransition,
                        NoncurrentVersionExpiration)

# 從環(huán)境變量中獲取訪問憑證。運(yùn)行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# 填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
# 填寫B(tài)ucket名稱,例如examplebucket。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')

# 設(shè)置Object距其最后修改時(shí)間3天后過期。
rule1 = LifecycleRule('rule1', 'tests/',
                      status=LifecycleRule.ENABLED,
                      expiration=LifecycleExpiration(days=3))

# 設(shè)置Object過期規(guī)則,指定日期之前創(chuàng)建的文件過期。
rule2 = LifecycleRule('rule2', 'tests2/',
                      status=LifecycleRule.ENABLED,
expiration=LifecycleExpiration(created_before_date=datetime.date(2023, 12, 12)))

# 設(shè)置分片過期規(guī)則,分片3天后過期。
rule3 = LifecycleRule('rule3', 'tests3/',
                      status=LifecycleRule.ENABLED,
            abort_multipart_upload=AbortMultipartUpload(days=3))

# 設(shè)置分片過期規(guī)則,指定日期之前的分片過期。
rule4 = LifecycleRule('rule4', 'tests4/',
                      status=LifecycleRule.ENABLED,
                      abort_multipart_upload = AbortMultipartUpload(created_before_date=datetime.date(2022, 12, 12)))

# 設(shè)置存儲類型轉(zhuǎn)換規(guī)則,指定Object在其最后修改時(shí)間20天之后轉(zhuǎn)為低頻訪問類型,在其最后修改時(shí)間30天之后轉(zhuǎn)為歸檔類型。
rule5 = LifecycleRule('rule5', 'tests5/',
                      status=LifecycleRule.ENABLED,
                      storage_transitions=[StorageTransition(days=20,storage_class=oss2.BUCKET_STORAGE_CLASS_IA),
                            StorageTransition(days=30,storage_class=oss2.BUCKET_STORAGE_CLASS_ARCHIVE)])

# 設(shè)置匹配的標(biāo)簽。
tagging_rule = TaggingRule()
tagging_rule.add('key1', 'value1')
tagging_rule.add('key2', 'value2')
tagging = Tagging(tagging_rule)

# 設(shè)置存儲類型轉(zhuǎn)換規(guī)則,指定Object在其最后修改時(shí)間超過365天后轉(zhuǎn)為ARCHIVE類型。 
# rule6與以上幾個(gè)規(guī)則不同的是它指定了匹配的標(biāo)簽,同時(shí)擁有key1=value1,key2=value2兩個(gè)標(biāo)簽的object才會匹配此規(guī)則。
rule6 = LifecycleRule('rule6', 'tests6/',
                      status=LifecycleRule.ENABLED,
                      storage_transitions=[StorageTransition(created_before_date=datetime.date(2022, 12, 12),storage_class=oss2.BUCKET_STORAGE_CLASS_IA)],
                      tagging = tagging)

# rule7針對版本控制狀態(tài)下的Bucket。
# 設(shè)置Object在其最后修改時(shí)間365天之后自動(dòng)轉(zhuǎn)為ARCHIVE類型。
# 設(shè)置自動(dòng)移除過期刪除標(biāo)記。
# 設(shè)置非當(dāng)前版本Object 12天后轉(zhuǎn)為IA類型。
# 設(shè)置非當(dāng)前版本Object 20天后轉(zhuǎn)為ARCHIVE類型。
# 設(shè)置非當(dāng)前版本Object 30天后刪除。
rule7 = LifecycleRule('rule7', 'tests7/',
              status=LifecycleRule.ENABLED,
              storage_transitions=[StorageTransition(days=365, storage_class=oss2.BUCKET_STORAGE_CLASS_ARCHIVE)], 
              expiration=LifecycleExpiration(expired_detete_marker=True),
              noncurrent_version_sotrage_transitions = 
                    [NoncurrentVersionStorageTransition(12, oss2.BUCKET_STORAGE_CLASS_IA),
                     NoncurrentVersionStorageTransition(20, oss2.BUCKET_STORAGE_CLASS_ARCHIVE)],
              noncurrent_version_expiration = NoncurrentVersionExpiration(30))

lifecycle = BucketLifecycle([rule1, rule2, rule3, rule4, rule5, rule6, rule7])

bucket.put_bucket_lifecycle(lifecycle)

基于最后一次修改時(shí)間策略限制除指定前綴、標(biāo)簽以外的文件執(zhí)行轉(zhuǎn)換存儲類型操作

以下代碼用于通過filter節(jié)點(diǎn)下的Not元素指定examplebucket中除前綴為logs/not-prefix、且包含key為key1,value為value1標(biāo)簽以外的文件在距離最后一次修改時(shí)間30天后轉(zhuǎn)低頻訪問類型。

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
from oss2.models import LifecycleRule, BucketLifecycle, StorageTransition, LifecycleFilter, FilterNot, FilterNotTag

# 從環(huán)境變量中獲取訪問憑證。運(yùn)行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# 填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
# 填寫B(tài)ucket名稱,例如examplebucket。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')

not_prefix = 'logs/not-prefix'
key = 'key1'
value = 'value1'
not_tag = FilterNotTag(key, value)
filter_not = FilterNot(not_prefix, not_tag)
filter = LifecycleFilter([filter_not])

# 設(shè)置存儲類型轉(zhuǎn)換規(guī)則。
rule1 = LifecycleRule('mtime transition1', 'logs',
                      status=LifecycleRule.ENABLED,
                      storage_transitions=[StorageTransition(days=30, storage_class=oss2.BUCKET_STORAGE_CLASS_IA)],
                      filter=filter)

lifecycle = BucketLifecycle([rule1])

result = bucket.put_bucket_lifecycle(lifecycle)
print('設(shè)置生命周期成功,返回狀態(tài)為:' + str(result.status))

基于最后一次訪問時(shí)間策略轉(zhuǎn)換文件存儲類型

以下代碼用于為examplebucket設(shè)置基于最后一次訪問時(shí)間策略執(zhí)行轉(zhuǎn)換存儲類型的操作。

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
from oss2.models import LifecycleRule, BucketLifecycle, StorageTransition, NoncurrentVersionStorageTransition

# 從環(huán)境變量中獲取訪問憑證。運(yùn)行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# yourEndpoint填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
# 填寫B(tài)ucket名稱,例如examplebucket。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')

# 指定生命周期規(guī)則1。規(guī)則中指定前綴為logs,且大于64 KB的所有文件在距離最后一次訪問時(shí)間30天后轉(zhuǎn)為低頻訪問類型。且再次訪問前綴為logs的文件時(shí),這些文件仍保留為低頻訪問類型。
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)]

# 指定生命周期規(guī)則2。規(guī)則中指定前綴為dir,且大于64 KB的所有歷史版本文件在距離最后一次訪問時(shí)間10天后轉(zhuǎn)為低頻訪問類型。且再次訪問前綴為dir的文件時(shí),這些文件將轉(zhuǎn)為標(biāo)準(zhǔn)存儲。
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])

# 設(shè)置生命周期規(guī)則。
result = bucket.put_bucket_lifecycle(lifecycle)

print('設(shè)置生命周期成功,返回狀態(tài)為:' + str(result.status))

查看生命周期規(guī)則

以下代碼用于查看examplebucket的生命周期規(guī)則。

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 從環(huán)境變量中獲取訪問憑證。運(yùn)行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# 填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
# 填寫B(tài)ucket名稱,例如examplebucket。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')

# 查看生命周期規(guī)則。
lifecycle = bucket.get_bucket_lifecycle()

for rule in lifecycle.rules:
    print('==========')
    # 查看規(guī)則ID。
    print('id:', rule.id)
    # 查看規(guī)則前綴。
    print('prefix:', rule.prefix)
    # 查看規(guī)則狀態(tài)。
    print('status', rule.status)
 
    if rule.tagging is not None:
        # 查看規(guī)則標(biāo)簽。
        print('tagging:', rule.tagging)

    if rule.abort_multipart_upload is not None:
        if rule.abort_multipart_upload.days is not None:
            # 查看過期分片規(guī)則。
            print('abort_multipart_upload days:', rule.abort_multipart_upload.days)
        else:
            print('abort_multipart_upload created_before_date:', rule.abort_multipart_upload.created_before_date)

    if rule.expiration is not None:
        if rule.expiration.days is not None:
            # 查看過期天數(shù)。
            print('expiration days:', rule.expiration.days)
        elif rule.expiration.expired_detete_marker is not None:
            # 查看是否自動(dòng)刪除過期刪除標(biāo)記。
            print('expiration expired_detete_marker:', rule.expiration.expired_detete_marker)
        elif rule.expiration.created_before_date is not None:
            # 查看過期日期。
            print('expiration created_before_date:', rule.expiration.created_before_date)

    if len(rule.storage_transitions) > 0:
        storage_info = ''
        for storage_rule in rule.storage_transitions:
            if storage_rule.days is not None:
                storage_info += 'days={0}, storage_class={1} *** '.format(
                    storage_rule.days, storage_rule.storage_class)
            else:
                storage_info += 'created_before_date={0}, storage_class={1} *** '.format(
                    storage_rule.created_before_date, storage_rule.storage_class)
            # 查看是否基于最后一次訪問時(shí)間配置了生命周期規(guī)則。僅Python SDK 2.16.1及以上版本支持查看。
            storage_info += 'is_access_time={0}, return_to_std_when_visit={1} ***'.format(
                storage_rule.is_access_time, storage_rule.return_to_std_when_visit)
        print('storage_transitions:', storage_info)

    if len(rule.noncurrent_version_sotrage_transitions) > 0:
        noncurrent_storage_info = ''
        for storage_rule in rule.noncurrent_version_sotrage_transitions:
            noncurrent_storage_info += 'days={0}, storage_class={1} *** '.format(
                storage_rule.noncurrent_days, storage_rule.storage_class)
            # 查看Object轉(zhuǎn)為低頻訪問類型后,再次訪問時(shí)Object是否轉(zhuǎn)為標(biāo)準(zhǔn)存儲類型。僅Python SDK 2.16.1及以上版本支持查看。
            noncurrent_storage_info += 'is_access_time={0}, return_to_std_when_visit={1} ***'.format(
                storage_rule.is_access_time, storage_rule.return_to_std_when_visit)
        # 查看非當(dāng)前版本Object存儲類型轉(zhuǎn)換規(guī)則。
        print('noncurrent_version_sotrage_transitions:', noncurrent_storage_info)

    if rule.noncurrent_version_expiration is not None:
        # 查看非當(dāng)前版本Object過期規(guī)則。
        print('noncurrent_version_expiration days:', rule.noncurrent_version_expiration.noncurrent_days)

清空生命周期規(guī)則

以下代碼用于清空examplebucket的所有生命周期規(guī)則。如果您需要?jiǎng)h除其中一條或者多條生命周期規(guī)則,請參見如何刪除其中一條或多條生命周期規(guī)則?

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# 從環(huán)境變量中獲取訪問憑證。運(yùn)行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# 填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
# 填寫B(tài)ucket名稱,例如examplebucket。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')

# 清空生命周期規(guī)則。
bucket.delete_bucket_lifecycle()

# 再次查看生命周期規(guī)則會拋出異常。
try:
    lifecycle = bucket.get_bucket_lifecycle()
except oss2.exceptions.NoSuchLifecycle:
    print('lifecycle is not configured')
            

相關(guān)文檔

  • 關(guān)于生命周期的完整示例代碼,請參見GitHub示例

  • 關(guān)于設(shè)置生命周期規(guī)則的API接口說明,請參見PutBucketLifecycle

  • 關(guān)于查看生命周期規(guī)則的API接口說明,請參見GetBucketLifecycle

  • 關(guān)于清空生命周期規(guī)則的API接口說明,請參見DeleteBucketLifecycle