PutSymlink
調(diào)用PutSymlink接口用于為OSS的目標(biāo)文件(TargetObject)創(chuàng)建軟鏈接(Symlink),您可以通過該軟鏈接訪問TargetObject。
注意事項(xiàng)
使用PutSymlink接口創(chuàng)建軟鏈接時(shí)不會(huì)檢查目標(biāo)文件是否存在、目標(biāo)文件類型是否合法以及目標(biāo)文件是否有訪問權(quán)限。
Symlink自身的訪問權(quán)限(ACL)以及目標(biāo)文件的ACL檢查僅會(huì)在GetObject等需要訪問目標(biāo)文件的API中進(jìn)行。
使用PutSymlink接口時(shí),攜帶以x-oss-meta-為前綴的參數(shù),則被視為user meta,例如x-oss-meta-location。一個(gè)Object可以有多個(gè)類似的參數(shù),但所有的user meta總大小不能超過8 KB。
默認(rèn)情況下,如果試圖添加的文件已經(jīng)存在,并且有訪問權(quán)限,則新添加的文件將覆蓋原來的文件,成功添加后將返回200 OK。
版本控制
您可以通過TargetObject創(chuàng)建的軟鏈接指向TargetObject的當(dāng)前版本。
軟鏈接本身也可以有多個(gè)版本,每個(gè)不同的版本可以指向不同的TargetObject,版本ID由OSS自動(dòng)生成,在響應(yīng)Header中返回x-oss-version-id。
請求語法
PUT /ObjectName?symlink HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
x-oss-symlink-target: TargetObjectName
請求頭
名稱 | 類型 | 是否必選 | 描述 |
x-oss-forbid-overwrite | 字符串 | 否 | 指定PutSymlink操作時(shí)是否覆蓋同名Object。
設(shè)置x-oss-forbid-overwrite請求Header會(huì)導(dǎo)致QPS處理性能下降,如果您有大量的操作需要使用x-oss-forbid-overwrite請求Header(QPS>1000),請聯(lián)系技術(shù)支持,避免影響您的業(yè)務(wù)。 說明 當(dāng)目標(biāo)Bucket處于已開啟或已暫停版本控制狀態(tài)時(shí),x-oss-forbid-overwrite請求Header設(shè)置無效,即允許覆蓋同名Object。 |
x-oss-symlink-target | 字符串 | 是 | 軟鏈接指向的目標(biāo)文件。 合法值:命名規(guī)范同Object
|
x-oss-object-acl | 字符串 | 否 | 指定OSS創(chuàng)建Object時(shí)的訪問權(quán)限。 取值:
關(guān)于訪問權(quán)限的更多信息,請參見設(shè)置Object ACL。 |
x-oss-storage-class | 字符串 | 否 | 指定Object的存儲類型。 對于任意存儲類型的Bucket,如果上傳Object時(shí)指定此參數(shù),則此次上傳的Object將存儲為指定的類型。例如在IA類型的Bucket中上傳Object時(shí),如果指定x-oss-storage-class為Standard,則該Object直接存儲為Standard。 取值:
IA與Archive類型的單個(gè)Object大小如果不足64 KB,則會(huì)按64 KB計(jì)量計(jì)費(fèi)。建議在使用PutSymlink接口時(shí)不要將Object的存儲類型指定為IA或Archive。 關(guān)于存儲類型的更多信息,請參見存儲類型概述。 |
此接口還需要包含Host、Date等公共請求頭。更多信息,請參見公共請求頭(Common Request Headers)。
響應(yīng)頭
此接口僅包含公共響應(yīng)頭。更多信息,請參見公共響應(yīng)頭(Common Response Headers)。
示例
請求示例
PUT /link-to-oss.jpg?symlink HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Cache-control: no-cache Content-Disposition: attachment;filename=oss_download.jpg Date: Tue, 08 Nov 2016 02:00:25 GMT Authorization: OSS qn6q**************:77Dv**************** x-oss-symlink-target: oss**** x-oss-storage-class: Standard
返回示例
HTTP/1.1 200 OK Server: AliyunOSS Date: Tue, 08 Nov 2016 02:00:25 GMT Content-Length: 0 Connection: keep-alive x-oss-request-id: 582131B9109F4EE66CDE56A5 ETag: "0A477B89B4602AA8DECB8E19BFD4****"
版本控制請求示例
PUT /link-to-oss.jpg?symlink HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 06:50:48 GMT Authorization: OSS qn6q**************:77Dv**************** x-oss-symlink-target: oss.jpg
返回示例
HTTP/1.1 200 OK Server: AliyunOSS Date: Tue, 09 Apr 2019 06:50:48 GMT Content-Length: 0 Connection: keep-alive x-oss-version-id: CAEQNRiBgMClj7qD0BYiIDQ5Y2QyMjc3NGZkODRlMTU5M2VkY2U3MWRiNGRh**** x-oss-request-id: 5CAC40C8B7AEADE01700064B ETag: "136A5E127272200EDAB170DD84DE****"
SDK
PutSymlink接口所對應(yīng)的各語言SDK如下:
錯(cuò)誤碼
錯(cuò)誤碼 | HTTP狀態(tài)碼 | 描述 |
InvalidArgument | 400 | StorageClass的值不合法。 |
FileAlreadyExists | 409 | 當(dāng)請求Header中攜帶x-oss-forbid-overwrite=true時(shí),表示禁止覆蓋同名文件。如果文件已存在,則返回此錯(cuò)誤。 |
FileImmutable | 409 | Bucket內(nèi)的數(shù)據(jù)處于被保護(hù)狀態(tài)時(shí),若您嘗試刪除或修改這些數(shù)據(jù),將返回此錯(cuò)誤碼。 |