帮助与文档

我们为你提供丰富、详尽的使用指南以及产品文档

PUT Object - Fetch

用于从指定的源链接抓取资源,保存到指定的对象中。Qingstor 在抓取时能够自动处理源链接服务器返回的 301/302/307 等重定向请求。 如果在同一时间相同源链接的 fetch 请求正在进行,或者被动触发的外部镜像功能正在抓取该源链接对应的文件,服务端将返回 409 fetch_in_process。 除此之外,服务端根据源链接错误情况还可能返回 404 object_not_exists, 503 upstream_failed 等错误,参见错误信息

注意:

当要保存的目标对象已存在时,该操作会对该对象的内容进行覆盖。

因为 QingStor 在 Put object 时需要知道文件大小,所以需要源站在提供下载文件时能返回 Content-Length 头,否则将抓取失败。

Request Syntax

PUT /<object-name> HTTP/1.1
x-qs-fetch-source: <source site>
Host: <bucket-name>.<zone-id>.qingstor.com
Date: <date>
Authorization: <authorization-string>

Request Parameters

没有请求参数

Request Headers

参见公共请求头

Header Name Type Description Required
x-qs-fetch-source String 被抓取的文件路径 (源链接)。链接形式为 <protocol>://<host>[:port]/[path] 。protocol 的值可为 “http” 或 “https”,默认为 “http”。port 默认为 protocol 对应的端口。 (如果 path 是一个目录或者 path 为空,抓取的结果将取决于该站点默认页的设定。QingStor 不会在源链接后边拼接请求中的 <object-name> 。) Yes
x-qs-fetch-if-unmodified-since Date 如果要保存的目标对象在 QingStor 中存在,且自从指定时间往后在 QingStor 中未被更新过,则从源链接抓取,抓取后返回 201 ;否则返回 412 precondition_failed No

Request Body

没有请求消息体

Status Code

回源成功返回 201; 假如源 object 不存在或目标 Bucket 不存在返回 404; 假如已经有另一个并发的 fetch 请求, 返回 409 fetch_in_process; 假如源站不可用, 返回 503 upstream_failed; 假如当前回源请求过多, 返回 429 fetch_throttled . 其他失败的返回码参考错误码列表.

Response Headers

参见公共响应头

Response Body

正常情况下没有响应消息体, 错误情况下会有返回码对应的 Json 消息, 参考错误码列表

Example

Example Request

PUT /myphoto.jpg HTTP/1.1
Host: mybucket.pek3a.qingstor.com
Date: Sun, 14 Aug 2016 09:05:00 GMT
x-qs-fetch-source: http://image.example.com/photo.jpg
Authorization: authorization string

Example Response

HTTP/1.1 201 CREATED
Server: QingStor
Date: Sun, 14 Aug 2016 09:05:01 GMT
Content-Length: 0
Connection: close
Request-ID: aa08cf7a43f611e5886952542e6ce14b