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

如果僅需要文件中的部分?jǐn)?shù)據(jù),您可以使用范圍下載,下載指定范圍內(nèi)的數(shù)據(jù)。

注意事項(xiàng)

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

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

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

  • 要范圍下載,您必須有oss:GetObject權(quán)限。具體操作,請(qǐng)參見為RAM用戶授權(quán)自定義的權(quán)限策略

指定正常的下載范圍

以下代碼用于指定正常的下載范圍來下載文件。

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 從環(huán)境變量中獲取訪問憑證。運(yùn)行本代碼示例之前,請(qǐng)確保已設(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填寫存儲(chǔ)空間名稱。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'yourBucketName')

# 對(duì)于1000字節(jié)大小的文件,正常的下載范圍取值為0~999。
# 獲取0~999字節(jié)范圍內(nèi)的數(shù)據(jù),包括0和999,共1000個(gè)字節(jié)的數(shù)據(jù)。如果指定的范圍無效(比如開始或結(jié)束位置的指定值為負(fù)數(shù),或指定值大于文件大小),則下載整個(gè)文件。
object_stream = bucket.get_object('<yourObjectName>', byte_range=(0, 999))

指定異常的下載范圍

假設(shè)現(xiàn)有大小為1000 Bytes的Object,則指定的正常下載范圍應(yīng)為0~999。如果指定范圍不在有效區(qū)間,會(huì)導(dǎo)致Range不生效,響應(yīng)返回值為200,并傳送整個(gè)Object的內(nèi)容。請(qǐng)求不合法的示例及返回說明如下:

  • 若指定了Range: bytes=500~2000,此時(shí)范圍末端取值不在有效區(qū)間,返回整個(gè)文件的內(nèi)容,且HTTP Code為200。

  • 若指定了Range: bytes=1000~2000,此時(shí)范圍首端取值不在有效區(qū)間,返回整個(gè)文件的內(nèi)容,且HTTP Code為200。

標(biāo)準(zhǔn)行為范圍下載

在請(qǐng)求中增加請(qǐng)求頭x-oss-range-behavior:standard,則改變指定范圍不在有效區(qū)間時(shí)OSS的下載行為。假設(shè)現(xiàn)有大小為1000 Bytes的Object:

  • 若指定了Range: bytes=500~2000,此時(shí)范圍末端取值不在有效區(qū)間,返回500~999字節(jié)范圍內(nèi)容,且HTTP Code為206。

  • 若指定了Range: bytes=1000~2000,此時(shí)范圍首端取值不在有效區(qū)間,返回HTTP Code為416,錯(cuò)誤碼為InvalidRange。

以下代碼用于標(biāo)準(zhǔn)行為范圍下載。

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

# 從環(huán)境變量中獲取訪問憑證。運(yùn)行本代碼示例之前,請(qǐng)確保已設(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填寫存儲(chǔ)空間名稱。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'yourBucketName')

# 創(chuàng)建大小為1000 Bytes的object。
object_name = 'rangeTest.txt'
content = 'a' * 1000
bucket.put_object(object_name, content)

headers = {'x-oss-range-behavior':'standard'}

# 如果范圍末端取值不在有效區(qū)間,則返回500~999字節(jié)范圍內(nèi)容,且HTTP Code為206。
object_stream = bucket.get_object(object_name, byte_range=(500, 2000), headers=headers)
print('standard get 500~2000 http status code:', object_stream.status)
print('standard get 500~2000 contnet_length:', object_stream.content_length)

try:
    # 如果范圍首端取值不在有效區(qū)間,則拋出異常,返回HTTP Code為416,錯(cuò)誤碼為InvalidRange。
    object_stream = bucket.get_object(object_name, byte_range=(1000, 2000), headers=headers)
except oss2.exceptions.ServerError as e:
    print('standard get 1000~2000 http status code:', e.status)
    print('standard get 1000~2000 error code:', e.code)

相關(guān)文檔

  • 關(guān)于范圍下載的完整示例代碼,請(qǐng)參見GitHub示例

  • 關(guān)于范圍下載的API接口說明,請(qǐng)參見GetObject