基础操作

 

Fetch Object

更新时间 2020-11-25

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

使用须知

  • 山河对象存储在抓取时能够自动处理源链接服务器返回的 301/302/307 等重定向请求。
  • 山河对象存储在上传 Object 时需要知道文件大小,所以需要源站在提供下载文件时能返回 Content-Length 头字段,否则将抓取失败。
  • 当要保存的目标 Object 已存在时,本操作会对该 Object 的内容进行覆盖。

请求语法

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

请求参数

无。

请求消息头

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

字段 类型 说明 是否必须
x-qs-fetch-source String 被抓取的文件路径 (源链接)。链接形式为 <protocol>://<host>[:port]/[path]。 各字段说明如下:
- protocol:可为 httphttps,默认为 http
- port: 默认为 protocol 对应的端口。
- path:目录。山河对象存储不会在源链接后边拼接请求中的 <object-name> 。若 http 为空,抓取的结果将取决于该站点默认页的设定。
x-qs-fetch-if-unmodified-since Date 若指定的时间晚于山河对象存储中的目标 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.jn2.is.shanhe.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: shanhe
Date: Sun, 14 Aug 2016 09:05:01 GMT
Content-Length: 0
Connection: close
Request-ID: aa08cf7a43f611e5886952542e6ce14b

SDK

此接口所对应的各语言 SDK 可参考 SDK 文档

这篇文档解决了您的问题吗?
0
0