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

PutObject

調用PutObject接口上傳文件(Object)。

注意事項

  • 添加的Object大小不能超過5 GB。

  • 默認情況下,如果已存在同名Object且對該Object有訪問權限,則新添加的Object將覆蓋原有的Object,并返回200 OK。

  • OSS沒有文件夾的概念,所有資源都是以文件來存儲,但您可以通過創建一個以正斜線(/)結尾,大小為0Object來創建模擬文件夾。

版本控制

在已開啟版本控制的Bucket中,OSS會為新添加的Object自動生成唯一的版本ID,并在響應Header中通過x-oss-version-id形式返回。

在暫停了版本控制的Bucket中,新添加的Object的版本IDnull。OSS會保證同一個Object僅有一個null的版本ID。

請求語法

PUT /ObjectName HTTP/1.1
Content-Length:ContentLength
Content-Type: ContentType
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue

當您在OSS ON云盒中調用該接口時,您需要將Host替換為云盒Endpoint。更多信息,請參見云盒Endpoint

請求頭

OSS支持HTTP協議規定的5個請求頭Cache-Control、Expires、Content-Encoding、Content-Disposition、Content-Type。如果上傳Object時設置了這些請求頭,則下載該Object時,相應的請求頭的值會自動使用上傳Object時設置的值。

名稱

類型

是否必選

示例值

描述

Authorization

字符串

OSS qn6q**************:77Dv****************

表示請求本身已被授權。 關于Authorization計算方法的更多信息,請參見Header中包含簽名

通常情況下Authorization是必選請求頭,但如果采用了URL包含簽名,則不用攜帶該請求頭。更多信息,請參見URL中包含簽名

默認值:無

Cache-Control

字符串

no-cache

指定該Object被下載時網頁的緩存行為。取值如下:

  • no-cache:不可直接使用緩存,而是先到服務端驗證Object是否已更新。如果Object已更新,表明緩存已過期,需從服務端重新下載Object;如果Object未更新,表明緩存未過期,此時將使用本地緩存。

  • no-store:所有內容都不會被緩存。

  • public:所有內容都將被緩存。

  • private:所有內容只在客戶端緩存。

  • max-age=<seconds>:緩存內容的相對過期時間,單位為秒。此選項僅在HTTP 1.1中可用。

默認值:無

Content-Disposition

字符串

attachment

指定Object的展示形式。取值如下:

  • Content-Disposition:inline:直接預覽文件內容。

  • Content-Disposition:attachment:以原文件名的形式下載到瀏覽器指定路徑。

  • Content-Disposition:attachment; filename="yourFileName":以自定義文件名的形式下載到瀏覽器指定路徑。

    yourFileName用于自定義下載后的文件名稱,例如example.jpg。

Object下載到瀏覽器指定路徑時:

說明
  • 如果Object名稱包含星號(*)、正斜線(/)等特殊字符時,可能會出現特殊字符轉義的情況。例如,下載example*.jpg到本地時,example*.jpg可能會轉義為example_.jpg

  • 如需確保下載名稱中包含中文字符的Object到本地指定路徑后,文件名稱不出現亂碼的現象,您需要將名稱中包含的中文字符進行URL編碼。例如,將測試.txtOSS下載到本地后,需要保留文件名為測試.txt,需按照"attachment;filename="+URLEncoder.encode("測試","UTF-8")+".txt;filename*=UTF-8''"+URLEncoder.encode("測試","UTF-8")+".txt"的格式設置Content-Disposition,即attachment;filename=%E6%B5%8B%E8%AF%95.txt;filename*=UTF-8''%E6%B5%8B%E8%AF%95.txt

通過文件URL訪問文件時是預覽還是以附件形式下載,與文件所在Bucket的創建時間、OSS開通時間以及使用的域名類型有關。更多信息,請參見通過文件URL訪問文件無法預覽而是以附件形式下載?

默認值:無

Content-Encoding

字符串

identity

聲明Object的編碼方式。您需要按照Object 的實際編碼類型填寫,否則可能造成客戶端(瀏覽器)解析編碼失敗或Object下載失敗。若Object未編碼,請置空此項。取值如下:

  • identity(默認值):表示Object未經過壓縮或編碼。

  • gzip:表示Object采用Lempel-Ziv(LZ77)壓縮算法以及32CRC校驗的編碼方式。

  • compress:表示Object采用Lempel-Ziv-Welch(LZW)壓縮算法的編碼方式。

  • deflate:表示Object采用zlib結構和deflate壓縮算法的編碼方式。

  • br:表示Object采用Brotli算法的編碼方式。

默認值:無

Content-MD5

字符串

eB5eJF1ptWaXm4bijSPyxw==

用于檢查消息內容是否與發送時一致。Content-MD5是由MD5算法生成的值。上傳了Content-MD5請求頭后,OSS會計算消息體的Content-MD5并檢查一致性。更多信息,請參見Content-MD5的計算方法

為確保數據完整性,OSS提供多種方式對數據的MD5值進行校驗。 如果需要通過Content-MD5進行MD5驗證,可將Content-MD5加入到請求頭中。

默認值:無

Content-Length

字符串

344606

用于描述HTTP消息體的傳輸大小,單位為字節。

如果請求頭中的Content-Length值小于實際請求體中傳輸的數據大小,OSS仍將成功創建Object,但Object的大小只能等于Content-Length中定義的大小,其他數據將被丟棄。

ETag

字符串

D41D8CD98F00B204E9800998ECF8****

Object生成時會創建相應的ETag ,ETag用于標識一個Object的內容。

  • 對于PutObject請求創建的Object,ETag值是其內容的MD5值。

  • 對于其他方式創建的Object,ETag值是基于一定計算規則生成的唯一值,但不是其內容的MD5值。

說明

ETag值可以用于檢查Object內容是否發生變化。不建議使用ETag作為Object內容的MD5來校驗數據完整性。

默認值:無

Expires

字符串

2022-10-12T00:00:00.000Z

緩存內容的絕對過期時間,格式是格林威治時間(GMT)。

默認值:無

x-oss-forbid-overwrite

字符串

false

指定PutObject操作時是否覆蓋同名Object。 當目標Bucket處于已開啟或已暫停的版本控制狀態時,x-oss-forbid-overwrite請求Header設置無效,即允許覆蓋同名Object。

  • 不指定x-oss-forbid-overwrite或者指定x-oss-forbid-overwritefalse時,表示允許覆蓋同名Object。

  • 指定x-oss-forbid-overwritetrue時,表示禁止覆蓋同名Object。

設置x-oss-forbid-overwrite請求Header會導致QPS處理性能下降,如果您有大量的操作需要使用x-oss-forbid-overwrite請求Header(QPS>1000),請聯系技術支持,避免影響您的業務。

默認值:false

x-oss-server-side-encryption

字符串

AES256

創建Object時,指定服務器端加密方式。

取值:AES256KMSSM4

說明

OSS ON云盒使用場景中,僅支持AES256。

指定此選項后,在響應頭中會返回此選項,OSS會對上傳的Object進行加密編碼存儲。當下載該Object時,響應頭中會包含x-oss-server-side-encryption,且該值會被設置成此Object的加密算法。

x-oss-server-side-data-encryption

字符串

SM4

指定Object的加密算法。如果未指定此選項,表明Object使用AES256加密算法。此選項僅當x-oss-server-side-encryptionKMS時有效。

說明

OSS ON云盒使用場景中,不支持使用此選項。

取值:SM4

x-oss-server-side-encryption-key-id

字符串

9468da86-3509-4f8d-a61e-6eab1eac****

KMS托管的用戶主密鑰。

此選項僅在x-oss-server-side-encryptionKMS時有效。

說明

OSS ON云盒使用場景中,不支持使用此選項。

x-oss-object-acl

字符串

default

指定OSS創建Object時的訪問權限。

取值:

  • default(默認):Object遵循所在存儲空間的訪問權限。

  • private:Object是私有資源。只有Object的擁有者和授權用戶有該Object的讀寫權限,其他用戶沒有權限操作該Object。

  • public-read:Object是公共讀資源。只有Object的擁有者和授權用戶有該Object的讀寫權限,其他用戶只有該Object的讀權限。請謹慎使用該權限。

  • public-read-write:Object是公共讀寫資源。所有用戶都有該Object的讀寫權限。請謹慎使用該權限。

關于訪問權限的更多信息,請參見設置Object ACL

x-oss-storage-class

字符串

Standard

指定Object的存儲類型。

對于任意存儲類型的Bucket,如果上傳Object時指定此參數,則此次上傳的Object將存儲為指定的類型。例如在IA類型的Bucket中上傳Object時,如果指定x-oss-storage-classStandard,則該Object直接存儲為Standard。

取值:

  • Standard:標準存儲

    說明

    OSS ON云盒使用場景中,僅支持Standard類型。

  • IA:低頻訪問

  • Archive:歸檔存儲

  • ColdArchive:冷歸檔存儲

  • DeepColdArchive:深度冷歸檔存儲

    重要

    如果要上傳的文件數量較多,直接指定上傳的文件類型為深度冷歸檔類型會造成較高的PUT類請求費用。建議您先將文件的存儲類型指定為標準存儲進行上傳,然后通過生命周期規則將其轉儲為深度冷歸檔類型,從而降低PUT類請求費用。

更多信息,請參見存儲類型介紹

x-oss-meta-*

字符串

x-oss-meta-location

使用PutObject接口時,如果配置以x-oss-meta-為前綴的參數,則該參數視為元數據,例如x-oss-meta-location。一個Object可以有多個類似的參數,但所有的元數據總大小不能超過8 KB。

元數據支持短劃線(-)、數字、英文字母(a~z)。英文字符的大寫字母會被轉成小寫字母,不支持下劃線(_)在內的其他字符。

x-oss-tagging

字符串

TagA=A&TagB=B

以鍵值對(Key-Value)的形式指定Object的標簽信息,可同時設置多個標簽,例如TagA=A&TagB=B

說明

KeyValue需進行URL編碼。其中,Key為必選項,Value為可選項,即Object標簽信息可設置為TagA&TagB=B

此接口還需要包含Host、Date等公共請求頭。更多信息,請參見公共請求頭(Common Request Headers)

響應頭

名稱

類型

示例值

描述

Content-MD5

字符串

1B2M2Y8AsgTpgAmY7PhC****

表示文件的MD5值。

重要

文件的MD5值指的是客戶端上傳完成后獲取到的文件MD5,并非響應體的MD5。

x-oss-hash-crc64ecma

字符串

316181249502703****

表示文件的CRC64值。

x-oss-version-id

字符串

CAEQNhiBgMDJgZCA0BYiIDc4MGZjZGI2OTBjOTRmNTE5NmU5NmFhZjhjYmY0****

表示文件的版本ID。僅當您將文件上傳至已開啟版本控制狀態的Bucket時,會返回該響應頭。

此接口還涉及其他公共響應頭,例如Date、x-oss-request-id等。更多信息,請參見公共響應頭(Common Response Headers)

示例

  • 簡單上傳

    請求示例

    PUT /test.txt HTTP/1.1
    Host: test.oss-cn-zhangjiakou.aliyuncs.com
    User-Agent: aliyun-sdk-python/2.6.0(Windows/7/AMD64;3.7.0)
    Accept: */*
    Connection: keep-alive
    Content-Type: text/plain
    date: Tue, 04 Dec 2018 15:56:37 GMT
    authorization: OSS qn6q**************:77Dv****************
    Transfer-Encoding: chunked

    返回示例

    HTTP/1.1 200 OK
    Server: AliyunOSS
    Date: Tue, 04 Dec 2018 15:56:38 GMT
    Content-Length: 0
    Connection: keep-alive
    x-oss-request-id: 5C06A3B67B8B5A3DA422299D
    ETag: "D41D8CD98F00B204E9800998ECF8****"
    x-oss-hash-crc64ecma: 316181249502703****
    Content-MD5: 1B2M2Y8AsgTpgAmY7PhC****
    x-oss-server-time: 7
  • 帶有歸檔存儲類型

    請求示例

    PUT /oss.jpg HTTP/1.1 
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com Cache-control: no-cache 
    Expires: Fri, 28 Feb 2012 05:38:42 GMT 
    Content-Encoding: utf-8
    Content-Disposition: attachment;filename=oss_download.jpg 
    Date: Fri, 24 Feb 2012 06:03:28 GMT 
    Content-Type: image/jpg 
    Content-Length: 344606 
    x-oss-storage-class: Archive
    Authorization: OSS qn6q**************:77Dv**************** 
    [344606 bytes of object data]

    返回示例

    HTTP/1.1 200 OK
    Server: AliyunOSS
    Date: Sat, 21 Nov 2015 18:52:34 GMT
    Content-Type: image/jpg
    Content-Length: 0
    Connection: keep-alive
    x-oss-request-id: 5650BD72207FB30443962F9A
    ETag: "A797938C31D59EDD08D86188F6D5B872"
  • 已開啟版本控制

    請求示例

    PUT /test HTTP/1.1
    Content-Length:362149
    Content-Type: text/html
    Host: versioning-put.oss-cn-hangzhou.aliyuncs.com
    Date: Tue, 09 Apr 2019 02:53:24 GMT
    Authorization: OSS qn6q**************:77Dv****************

    返回示例

    HTTP/1.1 200 OK
    Server: AliyunOSS
    Date: Tue, 09 Apr 2019 02:53:24 GMT
    Content-Length: 0
    Connection: keep-alive
    x-oss-request-id: 5CAC0A3DB7AEADE01700****
    x-oss-version-id: CAEQNhiBgMDJgZCA0BYiIDc4MGZjZGI2OTBjOTRmNTE5NmU5NmFhZjhjYmY0****
    ETag: "4F345B1F066DB1444775AA97D5D2****"

SDK

PutObject接口對應的各語言SDK如下:

錯誤碼

錯誤碼

HTTP狀態碼

描述

MissingContentLength

411

請求頭沒有采用chunked encoding編碼方式,或沒有設置Content-Length參數。

InvalidEncryptionAlgorithmError

400

指定x-oss-server-side-encryption的值無效。

取值:AES256KMSSM4

AccessDenied

403

添加Object時,用戶對設置的Bucket沒有訪問權限。

NoSuchBucket

404

添加Object時,設置的Bucket不存在。

InvalidObjectName

400

傳入的Object key長度大于1023字節。

InvalidArgument

400

返回該錯誤的可能原因如下:

  • 添加的Object大小超過5 GB。

  • x-oss-storage-class等參數的值無效。

RequestTimeout

400

指定了Content-Length,但沒有發送消息體,或者發送的消息體小于指定的大小。此種情況下服務器會一直等待,直至請求超時。

Bad Request

400

在請求中指定Content-MD5后,OSS會計算所發送數據的MD5值,并與請求中Content-MD5的值進行比較。如果二者不一致,則返回該錯誤。

KmsServiceNotEnabled

403

x-oss-server-side-encryption指定為KMS,但沒有預先購買KMS套件。

FileAlreadyExists

409

當請求的Header中攜帶x-oss-forbid-overwrite=true時,表示禁止覆蓋同名文件。如果同名文件已存在,則返回該錯誤。

FileImmutable

409

Bucket中的數據處于被保護狀態時,如果嘗試刪除或修改相應數據,則返回該錯誤。

常見問題

是否支持修改已上傳文件的元數據?

支持。您可以通過OSS控制臺、圖形化管理工具ossbrowser、各語言SDK、命令行工具ossutil或者REST API修改已上傳文件的元數據,例如將文件元數據Content-Type的值從application/octet-stream修改為image/jpeg。具體步驟,請參見管理文件元數據

為什么設置的Expires頭部無效?

  • 優先級問題

    當您同時設置ExpiresCache-Control頭部時,Cache-Control頭部的優先級高于Expires頭部。這意味著瀏覽器會先檢查Cache-Control頭部,只有在沒有找到有效的Cache-Control頭部時才會考慮Expires頭部。如果Cache-Control頭部包含了緩存控制指令(例如Cache-Control:max-age=3600),Expires頭部可能會被忽略。

  • Expires頭部設置有誤

    Expires頭部表示緩存內容的絕對過期時間,格式是格林威治時間(GMT),并且必須確保是未來的有效時間。如果Expires頭部設置的時間已過期或者格式不正確,則該頭部將被視為無效。以下提供了OSS Node.js SDK設置Expires頭部的代碼示例:

    const OSS = require('ali-oss');
    
    // 創建OSS客戶端實例
    const client = new OSS({
      // yourregion填寫Bucket所在地域。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
      region: 'yourregion',
      // 從環境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環境變量OSS_ACCESS_KEY_IDOSS_ACCESS_KEY_SECRET。
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      // 填寫Bucket名稱。
      bucket: 'examplebucket',
    });
    
    async function setExpires(objectName, expiresDate) {
      try {
        const result = await client.copy(objectName, objectName, {
          meta: {
            'Expires': expiresDate.toGMTString()
          }
        });
        console.log('Expires header set successfully.');
      } catch (error) {
        console.error('Error setting Expires header:', error);
      }
    }
    
    // 設置緩存內容的絕對過期時間。
    const expiresDate = new Date('2024-10-12T00:00:00.000Z');
    setExpires('your-object-name', expiresDate);