PutSymlink可用於針對OSS上的TargetObject建立符號連結,用戶可以通過該符號連結訪問TargetObject。

請求文法

PUT /ObjectName?symlink HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
x-oss-symlink-target: TargetObjectName

請求Header

名稱 類型 描述
x-oss-symlink-target 字元串 符號連結指向的目標檔案。

合法值:命名規範同Object。

細節分析

  • TargetObjectName同ObjectName一樣,需要URL encode。
  • 符號連結的目標檔案類型不能為符號連結。
  • 建立符號連結時,
    • 不檢查目標檔案是否存在
    • 不檢查目標檔案類型是否合法
    • 不檢查目標檔案是否有許可權訪問

    以上檢查,都延遲到GetObject等需要訪問目標檔案的API。

  • 如果試圖添加的檔案已經存在,並且有存取權限。新添加的檔案將覆蓋原來的檔案,成功返回200 OK。
  • 如果在PutSymlink的時候,攜帶以x-oss-meta-為首碼的參數,則視為user meta,比如x-oss-meta-location。一個Object可以有多個類似的參數,但所有的user meta總大小不能超過8k。
  • 如果Bucket的類型為Archive,則不能調用該介面,否則返回400錯誤,錯誤碼為OperationNotSupported。

樣本

請求樣本:

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 qn6qrrqxo2oawuk53otfjbyc:kZoYNv66bsmc10+dcGKw5x2PRrk=
x-oss-symlink-target: oss.jpg

返回樣本:

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: "0A477B89B4602AA8DECB8E19BFD447B6"