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