该 API 接口用于从指定的源链接抓取资源,保存到指定的 Object 中。

使用须知

  • QingStor 在抓取时能够自动处理源链接服务器返回的 301/302/307 等重定向请求。

  • QingStor 在上传 Object 时需要知道文件大小,所以需要源站在提供下载文件时能返回 Content-Length 头字段,否则将抓取失败。

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

请求语法

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

请求参数

无。

请求消息头

该 API 接口支持如下消息头:

字段 类型 说明 是否必须

x-qs-fetch-source

String

被抓取的文件路径 (源链接)。链接形式为 <protocol>://<host>[:port]/[path]。 各字段说明如下:
- protocol:可为 httphttps,默认为 http
- port: 默认为 protocol 对应的端口。
- path:目录。QingStor 对象存储不会在源链接后边拼接请求中的 <object-name> 。若 http 为空,抓取的结果将取决于该站点默认页的设定。

x-qs-fetch-if-unmodified-since

Date

若指定的时间晚于 QingStor 中的目标 Object 被修改的时间,则从源链接抓取

除以上请求头以外,此接口还需要包含 Host、Date 等公共请求头。详细内容可参见公共请求头

请求消息体

无。

响应头

此接口仅包含公共响应头。关于公共响应头的更多信息,请参见公共响应头

错误码

错误码 错误描述 HTTP 状态码

OK

回源成功

201

-

源 Object 不存在或目标 Bucket 不存在

404

fetch_in_process

已经有另一个并发的 fetch 请求

409

upstream_failed

源站不可用

503

fetch_throttled

当前回源请求过多

429

其他错误码可参考错误码列表

示例

请求示例

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

响应示例

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