API | 操作名 | 操作描述 |
检索对象内容 | 从指定对象(CSV 格式或者 JSON 格式)中检索内容 |
cos:GetObject
的授权。QCloudSelectObjectContentRequest *request = [QCloudSelectObjectContentRequest new];// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.tencentcloud.com/cos5/bucketrequest.bucket = @"examplebucket-1250000000";// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1"request.object = @"exampleobject";request.selectType = @"2";// 选择文件 配置QCloudSelectObjectContentConfig *config= [QCloudSelectObjectContentConfig new];/**SQL 表达式,代表您需要发起的检索操作。例如SELECT s._1 FROM COSObject s。这个表达式可以从 CSV 格式的对象中检索第一列内容。有关 SQL 表达式的详细介绍,请参见 (Select)[https://www.tencentcloud.com/document/product/436/37636?from_cn_redirect=1] 命令*/config.express = @"select * from COSObject";/**表达式类型,该项为扩展项,目前只支持 SQL 表达式,仅支持 SQL 参数*/config.expressionType = QCloudExpressionTypeSQL;/**描述待检索对象的格式*/QCloudInputSerialization *inputS = [QCloudInputSerialization new];inputS.compressionType = QCloudCOSXMLCompressionTypeNONE;/**描述在JSON对象格式下所需的文件参数。*/QCloudSerializationJSON *inputJson = [QCloudSerializationJSON new];/**SON 文件的类型:DOCUMENT 表示 JSON 文件仅包含一个独立的 JSON 对象,且该对象可以被切割成多行LINES 表示 JSON 对象中的每一行包含了一个独立的 JSON 对象合法值为 DOCUMENT 、LINES*/inputJson.type = QCloudInputJSONFileTypeDocument;inputS.serializationJSON = inputJson;config.inputSerialization = inputS;/**描述检索结果的输出格式*/QCloudOutputSerialization *outputS = [QCloudOutputSerialization new];QCloudSerializationJSON *outputJson = [QCloudSerializationJSON new];/**将输出结果中的记录分隔为不同行的字符,默认通过\\n进行分隔。您可以指定任意8进制字符,如逗号、分号、Tab 等。该参数最多支持2个字节,即您可以输入\\r\\n这类格式的分隔符。默认值为\\n*/outputJson.outputRecordDelimiter = @"\\n";/**描述在JSON对象格式下所需的文件参数。*/outputS.serializationJSON = outputJson;config.outputSerialization = outputS;/**是否需要返回查询进度 QueryProgress 信息,如果选中 COS Select 将周期性返回查询进度*/QCloudRequestProgress *requestProgress = [QCloudRequestProgress new];requestProgress.enabled = @"FALSE";config.requestProgress =requestProgress;request.selectObjectContentConfig = config;/**文件存储在本地的路径*/request.downloadingURL = [NSURL fileURLWithPath:QCloudFileInSubPath(@"test", @"2.json")];[request setDownProcessBlock:^(int64_t bytesDownload, int64_t totalBytesDownload, int64_t totalBytesExpectedToDownload) {NSLog(@"⏬⏬⏬⏬DOWN [Total]%lld [Downloaded]%lld [Download]%lld", totalBytesExpectedToDownload, totalBytesDownload, bytesDownload);}];[request setFinishBlock:^(id _Nonnull result, NSError * _Nonnull error) {NSLog(@"result = %@",result);}];[[QCloudCOSXMLService defaultCOSXML] SelectObjectContent:request];
let request = QCloudSelectObjectContentRequest.init();// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.tencentcloud.com/cos5/bucketrequest.bucket = "examplebucket-1250000000";// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1"request.object = "exampleobject";//代表这一接口的版本信息request.selectType = "2";// 选择文件 配置let config = QCloudSelectObjectContentConfig();/**SQL 表达式,代表您需要发起的检索操作。例如SELECT s._1 FROM COSObject s。这个表达式可以从 CSV 格式的对象中检索第一列内容。有关 SQL 表达式的详细介绍,请参见 (Select)[https://www.tencentcloud.com/document/product/436/37636?from_cn_redirect=1] 命令*/config.express = "Select * from COSObject";/**表达式类型,该项为扩展项,目前只支持 SQL 表达式,仅支持 SQL 参数*/config.expressionType = .SQL;/**描述待检索对象的格式*/let inputS = QCloudInputSerialization();inputS.compressionType = .NONE;/**描述在JSON对象格式下所需的文件参数。*/let inputJson = QCloudSerializationJSON.init();/**SON 文件的类型:DOCUMENT 表示 JSON 文件仅包含一个独立的 JSON 对象,且该对象可以被切割成多行LINES 表示 JSON 对象中的每一行包含了一个独立的 JSON 对象合法值为 DOCUMENT 、LINES*/inputJson.type = .document;inputS.serializationJSON = inputJson;config.inputSerialization = inputS;/**描述检索结果的输出格式*/let outputS = QCloudOutputSerialization.init();let outputJson = QCloudSerializationJSON.init();/**将输出结果中的记录分隔为不同行的字符,默认通过\\n进行分隔。您可以指定任意8进制字符,如逗号、分号、Tab 等。该参数最多支持2个字节,即您可以输入\\r\\n这类格式的分隔符。默认值为\\n*/outputJson.outputRecordDelimiter = "\\n";outputS.serializationJSON = outputJson;config.outputSerialization = outputS;/**是否需要返回查询进度 QueryProgress 信息,如果选中 COS Select 将周期性返回查询进度*/let requestProgress = QCloudRequestProgress.init();requestProgress.enabled = "FALSE";config.requestProgress = requestProgress;request.selectObjectContentConfig = config;//文件在本地的存储路径request.downloadingURL = NSURL.fileURL(withPath: QCloudFileInSubPath("test", "2.json"));request.finishBlock = {(result,error) inif error != nil{print(error!)}else{print(result!);}}QCloudCOSXMLService.defaultCOSXML().selectObjectContent(request);
本页内容是否解决了您的问题?