全部產品
Search
文件中心

Object Storage Service:PutSymlink

更新時間:Jun 19, 2024

調用PutSymlink介面用於為OSS的目標檔案(TargetObject)建立軟連結(Symlink),您可以通過該軟連結訪問TargetObject。

注意事項

  • 使用PutSymlink介面建立軟連結時不會檢查目標檔案是否存在、目標檔案類型是否合法以及目標檔案是否有存取權限。

  • Symlink自身的存取權限(ACL)以及目標檔案的ACL檢查僅會在GetObject等需要訪問目標檔案的API中進行。

  • 使用PutSymlink介面時,攜帶以x-oss-meta-為首碼的參數,則被視為user meta,例如x-oss-meta-location。一個Object可以有多個類似的參數,但所有的user meta總大小不能超過8 KB。

  • 預設情況下,如果試圖添加的檔案已經存在,並且有存取權限,則新添加的檔案將覆蓋原來的檔案,成功添加後將返回200 OK。

版本控制

您可以通過TargetObject建立的軟連結指向TargetObject的目前的版本。

軟連結本身也可以有多個版本,每個不同的版本可以指向不同的TargetObject,版本ID由OSS自動產生,在響應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操作時是否覆蓋同名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),請聯絡支援人員,避免影響您的業務。

說明

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

x-oss-symlink-target

字串

軟連結指向的目標檔案。

合法值:命名規範同Object

  • TargetObjectName同ObjectName一樣,需要對其進行URL編碼。

  • 軟連結的目標檔案類型不能為軟連結。

x-oss-object-acl

字串

指定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

字串

指定Object的儲存類型。

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

取值:

  • Standard:標準儲存

  • IA:低頻訪問

  • Archive:Archive Storage

IA與Archive類型的單個Object大小如果不足64 KB,則會按64 KB計量計費。建議在使用PutSymlink介面時不要將Object的儲存類型指定為IA或Archive。

關於儲存類型的更多資訊,請參見儲存類型概述

此介面還需要包含Host、Date等公用要求標頭。更多資訊,請參見公用要求標頭(Common Request Headers)

回應標頭

此介面僅包含公用回應標頭。更多資訊,請參見公用回應標頭(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介面所對應的各語言SDK如下:

錯誤碼

錯誤碼

HTTP狀態代碼

描述

InvalidArgument

400

StorageClass的值不合法。

FileAlreadyExists

409

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

FileImmutable

409

Bucket內的資料處於被保護狀態時,若您嘗試刪除或修改這些資料,將返回此錯誤碼。