API | Operation | Description |
Extracting object content | Extracts the content of a specified object (in CSV or JSON format) |
cos:GetObject
.QCloudSelectObjectContentRequest *request = [QCloudSelectObjectContentRequest new];// Bucket name in the format of BucketName-Appid, which can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucketrequest.bucket = @"examplebucket-1250000000";// Object key, i.e., the full path of a COS object. If the object is in a directory, the path should be "dir1/object1".request.object = @"exampleobject";request.selectType = @"2";// Select file configurationQCloudSelectObjectContentConfig *config= [QCloudSelectObjectContentConfig new];/**SQL expression, representing the extract operation you need to initiate. For example, you can use the `SELECT s._1 FROM COSObject s` expressionto extract the first column of data from a CSV-formatted object. For more information on SQL expressions,please see [SELECT Command](https://www.tencentcloud.com/document/product/436/32473).*/config.express = @"select * from COSObject";/**Expression type, which is an extension. Currently, only SQL expressions and parameters are supported.*/config.expressionType = QCloudExpressionTypeSQL;/**Specify the format of the object to extract.*/QCloudInputSerialization *inputS = [QCloudInputSerialization new];inputS.compressionType = QCloudCOSXMLCompressionTypeNONE;/**Specify the required file parameters for the JSON object format.*/QCloudSerializationJSON *inputJson = [QCloudSerializationJSON new];/**JSON file type:`DOCUMENT` indicates that the JSON file contains only one independent JSON object and the object can be cut into multiple lines.`LINES` indicates that each line in the JSON object contains an independent JSON object.Valid values: DOCUMENT, LINES*/inputJson.type = QCloudInputJSONFileTypeDocument;inputS.serializationJSON = inputJson;config.inputSerialization = inputS;/**Specify the output format of extraction results.*/QCloudOutputSerialization *outputS = [QCloudOutputSerialization new];QCloudSerializationJSON *outputJson = [QCloudSerializationJSON new];/**A character that separates each data record in the output result into different lines, which is `\\n` by default. You can specify any octal charactersuch as a comma, semicolon, and tab. This parameter supports up to 2 bytes, i.e., you can enter a delimiter in the format of `\\r\\n`. Default value: `\\n`.*/outputJson.outputRecordDelimiter = @"\\n";/**Specify the required file parameters for the JSON object format.*/outputS.serializationJSON = outputJson;config.outputSerialization = outputS;/**Specify whether to return the query progress information (`QueryProgress`). If this parameter is used, COS Select will periodically return the query progress.*/QCloudRequestProgress *requestProgress = [QCloudRequestProgress new];requestProgress.enabled = @"FALSE";config.requestProgress =requestProgress;request.selectObjectContentConfig = config;/**Local save path of the file*/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();// Bucket name in the format of BucketName-Appid, which can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucketrequest.bucket = "examplebucket-1250000000";// Object key, i.e., the full path of a COS object. If the object is in a directory, the path should be "dir1/object1".request.object = "exampleobject";// Version information of the APIrequest.selectType = "2";// Select file configurationlet config = QCloudSelectObjectContentConfig();/**SQL expression, representing the extract operation you need to initiate. For example, you can use the `SELECT s._1 FROM COSObject s` expressionto extract the first column of data from a CSV-formatted object. For more information on SQL expressions,please see [SELECT Command](https://www.tencentcloud.com/document/product/436/32473).*/config.express = "Select * from COSObject";/**Expression type, which is an extension. Currently, only SQL expressions and parameters are supported.*/config.expressionType = .SQL;/**Specify the format of the object to extract.*/let inputS = QCloudInputSerialization();inputS.compressionType = .NONE;/**Specify the required file parameters for the JSON object format.*/let inputJson = QCloudSerializationJSON.init();/**JSON file type:`DOCUMENT` indicates that the JSON file contains only one independent JSON object and the object can be cut into multiple lines.`LINES` indicates that each line in the JSON object contains an independent JSON object.Valid values: DOCUMENT, LINES*/inputJson.type = .document;inputS.serializationJSON = inputJson;config.inputSerialization = inputS;/**Specify the output format of extraction results.*/let outputS = QCloudOutputSerialization.init();let outputJson = QCloudSerializationJSON.init();/**A character that separates each data record in the output result into different lines, which is `\\n` by default. You can specify any octal charactersuch as a comma, semicolon, and tab. This parameter supports up to 2 bytes, i.e., you can enter a delimiter in the format of `\\r\\n`. Default value: `\\n`.*/outputJson.outputRecordDelimiter = "\\n";outputS.serializationJSON = outputJson;config.outputSerialization = outputS;/**Specify whether to return the query progress information (`QueryProgress`). If this parameter is used, COS Select will periodically return the query progress.*/let requestProgress = QCloudRequestProgress.init();requestProgress.enabled = "FALSE";config.requestProgress = requestProgress;request.selectObjectContentConfig = config;// Local save path of the filerequest.downloadingURL = NSURL.fileURL(withPath: QCloudFileInSubPath("test", "2.json"));request.finishBlock = {(result,error) inif error != nil{print(error!)}else{print(result!);}}QCloudCOSXMLService.defaultCOSXML().selectObjectContent(request);
Was this page helpful?