全部產品
Search
文件中心

Object Storage Service:create-select-object-meta

更新時間:Sep 19, 2024

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\"}"