简介
本文介绍对象存储 COS 通过 Android SDK 实现检索对象内容的示例代码和描述。
注意事项
若您要使用检索对象内容功能,需要具有目标对象的读权限:在您进行 授权策略 时,action 需要设置为
cos:GetObject
,更多授权请参见 支持CAM的业务接口。COS Select 支持检索以下格式的对象数据:
CSV 格式:对象以 CSV 格式存储,并以固定的分隔符划分;
JSON 格式:对象以 JSON 格式存储,可以是 JSON 文件或者 JSON 列表。
CSV、JSON 对象需要以 UTF-8 格式编码。
COS Select 支持检索 GZIP 或者 BZIP2 压缩的 CSV、JSON 对象。
COS Select 支持检索 SSE-COS 加密的 CSV、JSON 对象。
相关示例
功能名称 | 描述 | 示例代码 |
检索对象内容 | 使用结构化查询语句(Structured Query Language,SQL)从指定对象(CSV、JSON 或者 Parquet 格式)中检索内容。 |
前期准备
创建 CosXmlService
使用案例
String bucket = "examplebucket-1250000000";// 对象必须为 JSON 或者 csv 格式的文件String cosPath = "exampleobject";final String expression = "Select * from COSObject";SelectObjectContentRequest selectObjectContentRequest = new SelectObjectContentRequest(bucket, cosPath, expression, true,new InputSerialization(CompressionType.NONE, new JSONInput(JSONType.DOCUMENT)),new OutputSerialization(new JSONOutput(",")));// 设置查询结果回调,可能会回调多次selectObjectContentRequest.setSelectObjectContentProgressListener(new SelectObjectContentListener() {@Overridepublic void onProcess(SelectObjectContentEvent event) {}});cosXmlService.selectObjectContentAsync(selectObjectContentRequest,new CosXmlResultListener() {@Overridepublic void onSuccess(CosXmlRequest request, CosXmlResult result) {SelectObjectContentResult selectObjectContentResult =(SelectObjectContentResult) result;}// 如果您使用 kotlin 语言来调用,请注意回调方法中的异常是可空的,否则不会回调 onFail 方法,即:// clientException 的类型为 CosXmlClientException?,serviceException 的类型为 CosXmlServiceException?@Overridepublic void onFail(CosXmlRequest cosXmlRequest,@Nullable CosXmlClientException clientException,@Nullable CosXmlServiceException serviceException) {if (clientException != null) {clientException.printStackTrace();} else {serviceException.printStackTrace();}}});