create-select-object-meta
create-select-object-meta用于獲取目標文件總的行數(shù),總的列數(shù)(對于CSV文件),以及Splits個數(shù)。如果該信息不存在,則會掃描整個文件,分析并記錄下CSV文件的上述信息。重復(fù)調(diào)用該API則會保存上述信息而不必重新掃描整個文件。
注意事項
阿里云賬號默認擁有對目標對象操作的權(quán)限。如果您需要通過RAM用戶或者STS的方式進行操作,您必須擁有oss:PutObject
權(quán)限。具體操作,請參見為RAM用戶授權(quán)自定義的權(quán)限策略。
命令格式
ossutil api create-select-object-meta --bucket value --key value --select-meta-request value [flags]
參數(shù) | 類型 | 說明 |
--bucket | string | Bucket名稱。 |
--key | string | Object的完整路徑。 |
--select-meta-request | string | 保存CreateSelectObjectMeta請求的容器。 |
create-select-object-meta命令對應(yīng)API接口CreateSelectObjectMeta。關(guān)于API中的具體參數(shù)含義,請參見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 }
關(guān)于支持的全局命令行選項,請參見支持的全局命令行選項。
使用示例
獲取存儲空間
examplebucket
中exampleobject文件總的行數(shù),總的列數(shù),以及Splits個數(shù),請求語法 CSV。使用XML配置文件,select-meta-request.xml內(nèi)容如下:
<?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內(nèi)容如下:
{ "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配置參數(shù),命令示例如下:
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文件總的行數(shù),總的列數(shù),以及Splits個數(shù),請求語法 JSON。
使用XML配置文件,select-request.xml內(nèi)容如下:
<?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 內(nèi)容如下:
{ "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配置參數(shù),命令示例如下:
ossutil api create-select-object-meta --bucket examplebucket --key exampleobject --select-meta-request "{\"InputSerialization\":{\"JSON\":{\"Type\":\"LINES\"}},\"OverwriteIfExisting\":\"false\"}"