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"