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