自解压文件

自解压文件

如需查看对象存储系统是否支持该特性,请参考 可发现性. 或者与你的服务提供商确认。

使用自解压特性上传tar压缩文件。

对象存储系统从压缩档中解压文件并创建对象。

自解压文件请求

使用``PUT``请求上传压缩档。添加``extract-archive=format``参数表示上传文件为压缩档而不是普通格式。

有效参数值为 tar, tar.gz, 或 tar.bz2.

在``PUT``请求中指定的路径表示对象位置并用作结果对象名称的前缀。

在``PUT``请求中指定路径:

  • 账户
  • 或一个容器
  • 或一个特定对象前缀

例如,tar压缩包中第一个对象为``/home/file1.txt``且指定路径为``/v1/12345678912345/mybackup/castor/, 该操作会在``12345678912345``账户的``mybackup 容器下创建``castor/home/file1.txt``对象。

创建一个自解压文件

必须使用tar工具创建tar压缩档。

你可以上传常规文件但是不能上传其他项目(比如,空的目录或者符号链接)。

你必须以UTF-8-encode定义定义成员名称。

自解压特性支持以下格式:

  • POSIX.1-1988 Ustar 格式.

  • GNU tar 格式. 包括长名称,长链接,以及 sparse (LINUX稀疏文件)扩展。

  • POSIX.1-2001 pax 格式。

    使用gzip 或 bzip2 压缩文件。

    使用查询参数``extract-archive``指定格式。 有效参数值为 tar, tar.gz, 或 tar.bz2.

自解压文件响应

当对象存储过程请求时,它执行多个子操作。即使所有的子操作失败,操作返回一个201“创建”状态。一些子操作可能会成功,而另一些则失败。检查响应体,以确定每个自动提取存档子操作的结果。

可以设置``Accept``请求头为以下值来定义响应格式:

text/plain
响应格式为纯文本。如果省略``Accept``, 默认为``text/plain``.
application/json
将响应格式化为JSON格式。
application/xml
将响应格式化为XML格式。
text/xml
将响应格式化为XML格式。

以下例子中自解压文件响应为`text/plain``且没有发生错误。

Number Files Created: 10
Errors:

下面的自动提取归档文件示例显示了一个“text/plain”响应中发生了一些故障。在这个示例中,对象存储系统被配置为拒绝某些字符串,以至于使用任何限制字符串的对象都会发生400个错误的请求错误。

Number Files Created: 8
Errors:
/v1/12345678912345/mycontainer/home/xx%3Cyy, 400 Bad Request
/v1/12345678912345/mycontainer/../image.gif, 400 Bad Request

下面的示例显示了在“ application/json ”格式中的故障响应。

{
   "Number Files Created":1,
   "Errors":[
      [
         "/v1/12345678912345/mycontainer/home/xx%3Cyy",
         "400 Bad Request"
      ],
      [
         "/v1/12345678912345/mycontainer/../image.gif",
         "400 Bad Request"
      ]
   ]
}
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.