create-select-object-meta

create-select-object-meta用于获取目标文件总的行数,总的列数(对于CSV文件),以及Splits个数。如果该信息不存在,则会扫描整个文件,分析并记录下CSV文件的上述信息。重复调用该API则会保存上述信息而不必重新扫描整个文件。

注意事项

阿里云账号默认拥有对目标对象操作的权限。如果您需要通过RAM用户或者STS的方式进行操作,您必须拥有oss:PutObject权限。具体操作,请参见为RAM用户授权自定义的权限策略

命令格式

ossutil api create-select-object-meta --bucket value --key value --select-meta-request value [flags]

参数

类型

说明

--bucket

string

Bucket名称。

--key

string

Object的完整路径。

--select-meta-request

string

保存CreateSelectObjectMeta请求的容器。

说明

create-select-object-meta命令对应API接口CreateSelectObjectMeta。关于API中的具体参数含义,请参见CreateSelectObjectMeta

--select-meta-request

--select-meta-request配置选项既支持XML语法也支持JSON语法,当选项值包含file://前缀时,表示从文件中读取配置。

  • XML语法:

    <SelectMetaRequest>
      <InputSerialization>
        <CompressionType>string</CompressionType>
        <CSV>
          <RecordDelimiter>string</RecordDelimiter>
          <FieldDelimiter>string</FieldDelimiter>
          <QuoteCharacter>string</QuoteCharacter>
          <CommentCharacter>string</CommentCharacter>
          <Range>string</Range>
          <AllowQuotedRecordDelimiter>boolean</AllowQuotedRecordDelimiter>
          <FileHeaderInfo>string</FileHeaderInfo>
        </CSV>
        <JSON>
          <Range>string</Range>
          <ParseJsonNumberAsString>boolean</ParseJsonNumberAsString>
          <Type>string</Type>
        </JSON>
      </InputSerialization>
      <OverwriteIfExists>boolean</OverwriteIfExists>
    </SelectMetaRequest>
  • JSON语法:

    {
      "InputSerialization": {
        "CompressionType": "string",
        "CSV": {
          "CommentCharacter": "string",
          "Range": "string",
          "AllowQuotedRecordDelimiter": boolean,
          "FileHeaderInfo": "string",
          "RecordDelimiter": "string",
          "FieldDelimiter": "string",
          "QuoteCharacter": "string"
        },
        "JSON": {
          "Type": "string",
          "Range": "string",
          "ParseJsonNumberAsString": boolean
        }
      },
      "OverwriteIfExists": boolean
    }
说明

关于支持的全局命令行选项,请参见支持的全局命令行选项

使用示例

  • 获取存储空间examplebucket中exampleobject文件总的行数,总的列数,以及Splits个数,请求语法 CSV。

    • 使用XML配置文件,select-meta-request.xml内容如下:

      <?xml version="1.0"?>
      <CsvMetaRequest>
          <InputSerialization>
              <CSV>
                  <RecordDelimiter>Cg==</RecordDelimiter>
                  <FieldDelimiter>LA==</FieldDelimiter>
                  <QuoteCharacter>Ig==</QuoteCharacter>
              </CSV>
          </InputSerialization>
          <OverwriteIfExisting>false</OverwriteIfExisting>
      </CsvMetaRequest>

      命令示例如下:

      ossutil api create-select-object-meta --bucket examplebucket --key exampleobject --select-meta-request file://select-meta-request.xml
    • 使用JSON配置文件,select-meta-request.json内容如下:

      {
        "InputSerialization": {
          "CSV": {
            "RecordDelimiter": "Cg==",
            "FieldDelimiter": "LA==",
            "QuoteCharacter": "Ig=="
          }
        },
        "OverwriteIfExisting": "false"
      }

      命令示例如下:

      ossutil api create-select-object-meta --bucket examplebucket --key exampleobject --select-meta-request file://select-meta-request.json
    • 使用JSON配置参数,命令示例如下:

      ossutil api create-select-object-meta --bucket examplebucket --key exampleobject --select-meta-request "{\"InputSerialization\":{\"CSV\":{\"RecordDelimiter\":\"Cg==\",\"FieldDelimiter\":\"LA==\",\"QuoteCharacter\":\"Ig==\"}},\"OverwriteIfExisting\":\"false\"}"

  • 获取存储空间examplebucket中exampleobject文件总的行数,总的列数,以及Splits个数,请求语法 JSON。

    • 使用XML配置文件,select-request.xml内容如下:

      <?xml version="1.0"?>
      <JsonMetaRequest>
          <InputSerialization>
              <JSON>
                  <Type>LINES</Type>
              </JSON>
          </InputSerialization>
          <OverwriteIfExisting>false</OverwriteIfExisting>
      </JsonMetaRequest>

      命令示例如下:

      ossutil api create-select-object-meta --bucket examplebucket --key exampleobject --select-meta-request file://select-meta-request.xml
    • 使用JSON配置文件,select-request.json 内容如下:

      {
        "InputSerialization": {
          "JSON": {
            "Type": "LINES"
          }
        },
        "OverwriteIfExisting": "false"
      }

      命令示例如下:

      ossutil api create-select-object-meta --bucket examplebucket --key exampleobject --select-meta-request file://select-meta-request.json
    • 使用JSON配置参数,命令示例如下:

      ossutil api create-select-object-meta --bucket examplebucket --key exampleobject --select-meta-request "{\"InputSerialization\":{\"JSON\":{\"Type\":\"LINES\"}},\"OverwriteIfExisting\":\"false\"}"