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

本文介紹如何在開啟版本控制狀態(tài)下列舉存儲空間下(Bucket)的所有文件(Object)、指定個數(shù)的文件、指定前綴的文件等。

注意事項

  • 本文以華東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,請參見初始化

  • 要列舉文件,您必須有oss:ListObjectVersions權(quán)限。具體操作,請參見為RAM用戶授權(quán)自定義的權(quán)限策略

列舉Bucket中所有Object的信息

以下代碼用于列舉指定Bucket中包括刪除標(biāo)記(Delete Marker)在內(nèi)的所有Object的版本信息:

# -*- 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。
# yourBucketName填寫存儲空間名稱。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'yourBucketName')

# 開啟Bucket版本控制后,調(diào)用list_object_versions接口返回不同版本的Object信息。
# 列舉Bucket中包括刪除標(biāo)記(Delete Marker)在內(nèi)的所有Object的版本信息。
result = bucket.list_object_versions()

# 列舉所有Object的版本信息。
next_key_marker = None
next_versionid_marker = None
while True:
    result = bucket.list_object_versions(key_marker=next_key_marker, versionid_marker=next_versionid_marker)

    # 查看列舉Object的版本信息。
    for version_info in result.versions:
        print('version_info.versionid:', version_info.versionid)
        print('version_info.key:', version_info.key)
        print('version_info.is_latest:', version_info.is_latest)

    # 查看列舉刪除標(biāo)記的版本信息。
    for del_maker_Info in result.delete_marker:
        print('del_maker.key:', del_maker_Info.key)
        print('del_maker.versionid:', del_maker_Info.versionid)
        print('del_maker.is_latest:', del_maker_Info.is_latest)

    is_truncated = result.is_truncated

    # 查看列舉結(jié)果是否完整。如果結(jié)果不完整,則繼續(xù)羅列。如果結(jié)果已完整,則退出循環(huán)。
    if is_truncated:
        next_key_marker = result.next_key_marker
        next_versionid_marker = result.next_versionid_marker
    else:
        break

列舉指定前綴Object的版本信息

以下代碼用于列舉指定前綴Object的版本信息:

# -*- 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。
# yourBucketName填寫存儲空間名稱。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'yourBucketName')

# 開啟Bucket版本控制后,調(diào)用list_object_versions接口返回不同版本的Object信息。
# 列舉Bucket中包括刪除標(biāo)記(Delete Marker)在內(nèi)的所有Object的版本信息。
result = bucket.list_object_versions()

# 指定列舉以test-為前綴的Object的版本信息。
prefix = 'test-'
next_key_marker = None
next_versionid_marker = None
while True:
    result = bucket.list_object_versions(prefix=prefix, key_marker=next_key_marker, versionid_marker=next_versionid_marker)

    # 查看列舉的Object版本信息。
    for version_info in result.versions:
        print('version_info.versionid:', version_info.versionid)
        print('version_info.key:', version_info.key)
        print('version_info.is_latest:', version_info.is_latest)

    # 查看列舉的刪除標(biāo)記版本信息。
    for del_maker_Info in result.delete_marker:
        print('del_maker.key:', del_maker_Info.key)
        print('del_maker.versionid:', del_maker_Info.versionid)
        print('del_maker.is_latest:', del_maker_Info.is_latest)

    is_truncated = result.is_truncated

    # 查看列舉結(jié)果是否完整。如果結(jié)果不完整,則繼續(xù)羅列。如果結(jié)果已完整,則退出循環(huán)。
    if is_truncated:
        next_key_marker = result.next_key_marker
        next_versionid_marker = result.next_versionid_marker
    else:
        break

列舉指定個數(shù)Object的版本信息

以下代碼用于列舉指定個數(shù)Object的版本信息:

# -*- 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。
# yourBucketName填寫存儲空間名稱。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'yourBucketName')

# 開啟Bucket版本控制后,調(diào)用list_object_versions接口返回不同版本的Object信息。
# 列舉Bucket中包括刪除標(biāo)記(Delete Marker)在內(nèi)的所有Object的版本信息。
result = bucket.list_object_versions()

# 指定本次最多返回200個結(jié)果。
max_keys = 200

result = bucket.list_object_versions(max_keys=max_keys)

# 查看列舉的Object版本信息。
for version_info in result.versions:
    print('version_info.versionid:', version_info.versionid)
    print('version_info.key:', version_info.key)
    print('version_info.is_latest:', version_info.is_latest)

# 查看列舉的Object刪除標(biāo)記的版本信息。
for del_maker_Info in result.delete_marker:
    print('del_maker.key:', del_maker_Info.key)
    print('del_maker.versionid:', del_maker_Info.versionid)
    print('del_maker.is_latest:', del_maker_Info.is_latest)

# 查看列舉結(jié)果是否有截斷。
# 由于指定本次列舉最多返回200個結(jié)果,若Bucket中Object的個數(shù)超過200,則列舉結(jié)果存在截斷,即is_truncated為True。若Bucket中Object的個數(shù)少于200,則列舉結(jié)果沒有截斷,即is_truncated為False。
print('is truncated', result.is_truncated)

文件夾功能

OSS沒有文件夾的概念,所有元素都是以文件來存儲。創(chuàng)建文件夾本質(zhì)上來說是創(chuàng)建了一個大小為0并以正斜線(/)結(jié)尾的文件。這個文件可以被上傳和下載,控制臺會對以正斜線(/)結(jié)尾的文件以文件夾的方式展示。

通過delimiter和prefix兩個參數(shù)可以模擬文件夾功能:

  • 如果設(shè)置prefix為某個文件夾名稱,則會列舉以此prefix開頭的文件,即該文件夾下所有的文件和子文件夾(目錄)均顯示為Object。

  • 如果在設(shè)置了prefix的情況下,將delimiter設(shè)置為正斜線(/),則只列舉該文件夾下的文件和子文件夾(目錄),該文件夾下的子文件夾(目錄)顯示為CommonPrefixes,子文件夾下的文件和文件夾不顯示。

假設(shè)存儲空間(examplebucket)中包含文件oss.jpgfun/test.jpgfun/movie/001.avifun/movie/007.txt,以正斜線(/)作為文件夾的分隔符。文件結(jié)構(gòu)如下:

examplebucket           
 └── oss.jpg
 └── fun               
      └── test.jpg
      └── movie
           └── 001.avi
           └── 007.txt

以下示例說明了如何通過模擬文件夾的方式列舉文件。

  • 列舉根目錄下的Object的版本信息

    以下代碼用于列舉根目錄下的Object的版本信息:

    # -*- 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。
    # yourBucketName填寫存儲空間名稱。
    bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'yourBucketName')
    
    # 開啟Bucket版本控制后,調(diào)用list_object_versions接口返回不同版本的Object信息。
    # 列舉Bucket中包括刪除標(biāo)記(Delete Marker)在內(nèi)的所有Object的版本信息。
    result = bucket.list_object_versions()
    
    # 指定delimiter為正斜線(/)。
    delimiter = "/"
    next_key_marker = None
    next_versionid_marker = None
    while True:
        result = bucket.list_object_versions(delimiter=delimiter, key_marker=next_key_marker, versionid_marker=next_versionid_marker)
    
        # 查看列舉的Object版本信息。
        for version_info in result.versions:
            print('version_info.versionid:', version_info.versionid)
            print('version_info.key:', version_info.key)
            print('version_info.is_latest:', version_info.is_latest)
    
        # 查看列舉的刪除標(biāo)記版本信息。
        for del_maker_Info in result.delete_marker:
            print('del_maker.key:', del_maker_Info.key)
            print('del_maker.versionid:', del_maker_Info.versionid)
            print('del_maker.is_latest:', del_maker_Info.is_latest)
    
        # 查看以正斜線(/)結(jié)尾的目錄名稱。
        for common_prefix in result.common_prefix:
            print("common_prefix:", common_prefix)
    
        is_truncated = result.is_truncated
    
        # 查看列舉結(jié)果是否完整。如果結(jié)果不完整,則繼續(xù)羅列。如果結(jié)果已完整,則退出循環(huán)。
        if is_truncated:
            next_key_marker = result.next_key_marker
            next_versionid_marker = result.next_versionid_marker
        else:
            break

    返回結(jié)果:

    ('version_info.versionid:', 'CAEQEhiBgMCw8Y7FqBciIGIzMDE3MTEzOWRiMDRmZmFhMmRlMjljZWI0MWU4****')
    ('version_info.key:', 'oss.jpg')
    ('version_info.is_latest:', True)
    ('common_prefix:', 'fun/')
  • 列舉目錄下的文件和子目錄

    以下代碼用于列舉指定目錄下的文件和子目錄:

    # -*- 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。
    # yourBucketName填寫存儲空間名稱。
    bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'yourBucketName')
    
    # 開啟Bucket版本控制后,調(diào)用list_object_versions接口返回不同版本的Object信息。
    # 列出Bucket中包括刪除標(biāo)記(Delete Marker)在內(nèi)的所有Object的版本信息。
    result = bucket.list_object_versions()
    
    # 指定delimiter為正斜線(/),prefix為fun/。
    prefix = "fun/"
    delimiter = "/"
    next_key_marker = None
    next_versionid_marker = None
    while True:
        result = bucket.list_object_versions(prefix=prefix, delimiter=delimiter, key_marker=next_key_marker, versionid_marker=next_versionid_marker)
    
        # 查看列舉的Object版本信息。
        for version_info in result.versions:
            print('version_info.versionid:', version_info.versionid)
            print('version_info.key:', version_info.key)
            print('version_info.is_latest:', version_info.is_latest)
    
        # 查看列舉的刪除標(biāo)記的版本信息。
        for del_maker_Info in result.delete_marker:
            print('del_maker.key:', del_maker_Info.key)
            print('del_maker.versionid:', del_maker_Info.versionid)
            print('del_maker.is_latest:', del_maker_Info.is_latest)
    
        # 查看以正斜線(/)結(jié)尾的文件夾名稱。
        for common_prefix in result.common_prefix:
            print("common_prefix:", common_prefix)
    
        is_truncated = result.is_truncated
    
        # 查看列舉結(jié)果是否完整。如果結(jié)果不完整,則繼續(xù)羅列。如果結(jié)果已完整,則退出循環(huán)。
        if is_truncated:
            next_key_marker = result.next_key_marker
            next_versionid_marker = result.next_versionid_marker
        else:
            break

    返回結(jié)果:

    ('version_info.versionid:', 'CAEQFRiBgMCh9JDkrxciIGE3OTNkYzFhYTc2YzQzOTQ4Y2MzYjg2YjQ4ODg*****')
    ('version_info.key:', 'fun/test.jpg')
    ('version_info.is_latest:', True)
    ('commonPrefix:', 'fun/movie/')

相關(guān)文檔

關(guān)于列舉文件的API接口說明,請參見ListObjectVersions(GetBucketVersions)