// Does the work of analyzing PDFs. Start by saving the file to S3, as this is currently the only // way for textract to analyze PDFs. Then, point the analysis request to the S3 bucket and begin // processing. Finally, wait for the results of processing. private async Task <GetDocumentAnalysisResponse> StartPDFAnalysis(IFormFile file, List <string> featureTypes) { // Upload PDF to S3, with guid as file key var k = Guid.NewGuid(); PDFtoS3Bucket(file, k.ToString()).Wait(); // Create S3 obj to hand to Textract var s3 = new Amazon.Textract.Model.S3Object(); s3.Bucket = Environment.GetEnvironmentVariable("BUCKET_NAME"); s3.Name = k.ToString(); var r = new StartDocumentAnalysisRequest(); // Set document for request to S3 obj r.DocumentLocation = new DocumentLocation { S3Object = s3 }; r.FeatureTypes = featureTypes; // Start analysis var response = await this.textractClient.StartDocumentAnalysisAsync(r); // Wait for analysis to finish var x = new GetDocumentAnalysisRequest(); x.JobId = response.JobId; var results = await GetDocAnalysisResponse(response); // Remove PDF from S3 RemoveFromS3Bucket(k.ToString()).Wait(); return(results); }
public object Execute(ExecutorContext context) { var cmdletContext = context as CmdletContext; // create request var request = new Amazon.Textract.Model.StartDocumentTextDetectionRequest(); if (cmdletContext.ClientRequestToken != null) { request.ClientRequestToken = cmdletContext.ClientRequestToken; } // populate DocumentLocation var requestDocumentLocationIsNull = true; request.DocumentLocation = new Amazon.Textract.Model.DocumentLocation(); Amazon.Textract.Model.S3Object requestDocumentLocation_documentLocation_S3Object = null; // populate S3Object var requestDocumentLocation_documentLocation_S3ObjectIsNull = true; requestDocumentLocation_documentLocation_S3Object = new Amazon.Textract.Model.S3Object(); System.String requestDocumentLocation_documentLocation_S3Object_s3Object_Bucket = null; if (cmdletContext.S3Object_Bucket != null) { requestDocumentLocation_documentLocation_S3Object_s3Object_Bucket = cmdletContext.S3Object_Bucket; } if (requestDocumentLocation_documentLocation_S3Object_s3Object_Bucket != null) { requestDocumentLocation_documentLocation_S3Object.Bucket = requestDocumentLocation_documentLocation_S3Object_s3Object_Bucket; requestDocumentLocation_documentLocation_S3ObjectIsNull = false; } System.String requestDocumentLocation_documentLocation_S3Object_s3Object_Name = null; if (cmdletContext.S3Object_Name != null) { requestDocumentLocation_documentLocation_S3Object_s3Object_Name = cmdletContext.S3Object_Name; } if (requestDocumentLocation_documentLocation_S3Object_s3Object_Name != null) { requestDocumentLocation_documentLocation_S3Object.Name = requestDocumentLocation_documentLocation_S3Object_s3Object_Name; requestDocumentLocation_documentLocation_S3ObjectIsNull = false; } System.String requestDocumentLocation_documentLocation_S3Object_s3Object_Version = null; if (cmdletContext.S3Object_Version != null) { requestDocumentLocation_documentLocation_S3Object_s3Object_Version = cmdletContext.S3Object_Version; } if (requestDocumentLocation_documentLocation_S3Object_s3Object_Version != null) { requestDocumentLocation_documentLocation_S3Object.Version = requestDocumentLocation_documentLocation_S3Object_s3Object_Version; requestDocumentLocation_documentLocation_S3ObjectIsNull = false; } // determine if requestDocumentLocation_documentLocation_S3Object should be set to null if (requestDocumentLocation_documentLocation_S3ObjectIsNull) { requestDocumentLocation_documentLocation_S3Object = null; } if (requestDocumentLocation_documentLocation_S3Object != null) { request.DocumentLocation.S3Object = requestDocumentLocation_documentLocation_S3Object; requestDocumentLocationIsNull = false; } // determine if request.DocumentLocation should be set to null if (requestDocumentLocationIsNull) { request.DocumentLocation = null; } if (cmdletContext.JobTag != null) { request.JobTag = cmdletContext.JobTag; } if (cmdletContext.KMSKeyId != null) { request.KMSKeyId = cmdletContext.KMSKeyId; } // populate NotificationChannel var requestNotificationChannelIsNull = true; request.NotificationChannel = new Amazon.Textract.Model.NotificationChannel(); System.String requestNotificationChannel_notificationChannel_RoleArn = null; if (cmdletContext.NotificationChannel_RoleArn != null) { requestNotificationChannel_notificationChannel_RoleArn = cmdletContext.NotificationChannel_RoleArn; } if (requestNotificationChannel_notificationChannel_RoleArn != null) { request.NotificationChannel.RoleArn = requestNotificationChannel_notificationChannel_RoleArn; requestNotificationChannelIsNull = false; } System.String requestNotificationChannel_notificationChannel_SNSTopicArn = null; if (cmdletContext.NotificationChannel_SNSTopicArn != null) { requestNotificationChannel_notificationChannel_SNSTopicArn = cmdletContext.NotificationChannel_SNSTopicArn; } if (requestNotificationChannel_notificationChannel_SNSTopicArn != null) { request.NotificationChannel.SNSTopicArn = requestNotificationChannel_notificationChannel_SNSTopicArn; requestNotificationChannelIsNull = false; } // determine if request.NotificationChannel should be set to null if (requestNotificationChannelIsNull) { request.NotificationChannel = null; } // populate OutputConfig var requestOutputConfigIsNull = true; request.OutputConfig = new Amazon.Textract.Model.OutputConfig(); System.String requestOutputConfig_outputConfig_S3Bucket = null; if (cmdletContext.OutputConfig_S3Bucket != null) { requestOutputConfig_outputConfig_S3Bucket = cmdletContext.OutputConfig_S3Bucket; } if (requestOutputConfig_outputConfig_S3Bucket != null) { request.OutputConfig.S3Bucket = requestOutputConfig_outputConfig_S3Bucket; requestOutputConfigIsNull = false; } System.String requestOutputConfig_outputConfig_S3Prefix = null; if (cmdletContext.OutputConfig_S3Prefix != null) { requestOutputConfig_outputConfig_S3Prefix = cmdletContext.OutputConfig_S3Prefix; } if (requestOutputConfig_outputConfig_S3Prefix != null) { request.OutputConfig.S3Prefix = requestOutputConfig_outputConfig_S3Prefix; requestOutputConfigIsNull = false; } // determine if request.OutputConfig should be set to null if (requestOutputConfigIsNull) { request.OutputConfig = null; } CmdletOutput output; // issue call var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint); try { var response = CallAWSServiceOperation(client, request); object pipelineOutput = null; pipelineOutput = cmdletContext.Select(response, this); output = new CmdletOutput { PipelineOutput = pipelineOutput, ServiceResponse = response }; } catch (Exception e) { output = new CmdletOutput { ErrorResponse = e }; } return(output); }
public object Execute(ExecutorContext context) { System.IO.MemoryStream _Document_ByteStream = null; try { var cmdletContext = context as CmdletContext; // create request var request = new Amazon.Textract.Model.DetectDocumentTextRequest(); // populate Document var requestDocumentIsNull = true; request.Document = new Amazon.Textract.Model.Document(); System.IO.MemoryStream requestDocument_document_Byte = null; if (cmdletContext.Document_Byte != null) { _Document_ByteStream = new System.IO.MemoryStream(cmdletContext.Document_Byte); requestDocument_document_Byte = _Document_ByteStream; } if (requestDocument_document_Byte != null) { request.Document.Bytes = requestDocument_document_Byte; requestDocumentIsNull = false; } Amazon.Textract.Model.S3Object requestDocument_document_S3Object = null; // populate S3Object var requestDocument_document_S3ObjectIsNull = true; requestDocument_document_S3Object = new Amazon.Textract.Model.S3Object(); System.String requestDocument_document_S3Object_s3Object_Bucket = null; if (cmdletContext.S3Object_Bucket != null) { requestDocument_document_S3Object_s3Object_Bucket = cmdletContext.S3Object_Bucket; } if (requestDocument_document_S3Object_s3Object_Bucket != null) { requestDocument_document_S3Object.Bucket = requestDocument_document_S3Object_s3Object_Bucket; requestDocument_document_S3ObjectIsNull = false; } System.String requestDocument_document_S3Object_s3Object_Name = null; if (cmdletContext.S3Object_Name != null) { requestDocument_document_S3Object_s3Object_Name = cmdletContext.S3Object_Name; } if (requestDocument_document_S3Object_s3Object_Name != null) { requestDocument_document_S3Object.Name = requestDocument_document_S3Object_s3Object_Name; requestDocument_document_S3ObjectIsNull = false; } System.String requestDocument_document_S3Object_s3Object_Version = null; if (cmdletContext.S3Object_Version != null) { requestDocument_document_S3Object_s3Object_Version = cmdletContext.S3Object_Version; } if (requestDocument_document_S3Object_s3Object_Version != null) { requestDocument_document_S3Object.Version = requestDocument_document_S3Object_s3Object_Version; requestDocument_document_S3ObjectIsNull = false; } // determine if requestDocument_document_S3Object should be set to null if (requestDocument_document_S3ObjectIsNull) { requestDocument_document_S3Object = null; } if (requestDocument_document_S3Object != null) { request.Document.S3Object = requestDocument_document_S3Object; requestDocumentIsNull = false; } // determine if request.Document should be set to null if (requestDocumentIsNull) { request.Document = null; } CmdletOutput output; // issue call var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint); try { var response = CallAWSServiceOperation(client, request); object pipelineOutput = null; pipelineOutput = cmdletContext.Select(response, this); output = new CmdletOutput { PipelineOutput = pipelineOutput, ServiceResponse = response }; } catch (Exception e) { output = new CmdletOutput { ErrorResponse = e }; } return(output); } finally { if (_Document_ByteStream != null) { _Document_ByteStream.Dispose(); } } }
public object Execute(ExecutorContext context) { System.IO.MemoryStream _Document_ByteStream = null; try { var cmdletContext = context as CmdletContext; // create request var request = new Amazon.Textract.Model.AnalyzeDocumentRequest(); // populate Document var requestDocumentIsNull = true; request.Document = new Amazon.Textract.Model.Document(); System.IO.MemoryStream requestDocument_document_Byte = null; if (cmdletContext.Document_Byte != null) { _Document_ByteStream = new System.IO.MemoryStream(cmdletContext.Document_Byte); requestDocument_document_Byte = _Document_ByteStream; } if (requestDocument_document_Byte != null) { request.Document.Bytes = requestDocument_document_Byte; requestDocumentIsNull = false; } Amazon.Textract.Model.S3Object requestDocument_document_S3Object = null; // populate S3Object var requestDocument_document_S3ObjectIsNull = true; requestDocument_document_S3Object = new Amazon.Textract.Model.S3Object(); System.String requestDocument_document_S3Object_s3Object_Bucket = null; if (cmdletContext.S3Object_Bucket != null) { requestDocument_document_S3Object_s3Object_Bucket = cmdletContext.S3Object_Bucket; } if (requestDocument_document_S3Object_s3Object_Bucket != null) { requestDocument_document_S3Object.Bucket = requestDocument_document_S3Object_s3Object_Bucket; requestDocument_document_S3ObjectIsNull = false; } System.String requestDocument_document_S3Object_s3Object_Name = null; if (cmdletContext.S3Object_Name != null) { requestDocument_document_S3Object_s3Object_Name = cmdletContext.S3Object_Name; } if (requestDocument_document_S3Object_s3Object_Name != null) { requestDocument_document_S3Object.Name = requestDocument_document_S3Object_s3Object_Name; requestDocument_document_S3ObjectIsNull = false; } System.String requestDocument_document_S3Object_s3Object_Version = null; if (cmdletContext.S3Object_Version != null) { requestDocument_document_S3Object_s3Object_Version = cmdletContext.S3Object_Version; } if (requestDocument_document_S3Object_s3Object_Version != null) { requestDocument_document_S3Object.Version = requestDocument_document_S3Object_s3Object_Version; requestDocument_document_S3ObjectIsNull = false; } // determine if requestDocument_document_S3Object should be set to null if (requestDocument_document_S3ObjectIsNull) { requestDocument_document_S3Object = null; } if (requestDocument_document_S3Object != null) { request.Document.S3Object = requestDocument_document_S3Object; requestDocumentIsNull = false; } // determine if request.Document should be set to null if (requestDocumentIsNull) { request.Document = null; } if (cmdletContext.FeatureType != null) { request.FeatureTypes = cmdletContext.FeatureType; } // populate HumanLoopConfig var requestHumanLoopConfigIsNull = true; request.HumanLoopConfig = new Amazon.Textract.Model.HumanLoopConfig(); System.String requestHumanLoopConfig_humanLoopConfig_FlowDefinitionArn = null; if (cmdletContext.HumanLoopConfig_FlowDefinitionArn != null) { requestHumanLoopConfig_humanLoopConfig_FlowDefinitionArn = cmdletContext.HumanLoopConfig_FlowDefinitionArn; } if (requestHumanLoopConfig_humanLoopConfig_FlowDefinitionArn != null) { request.HumanLoopConfig.FlowDefinitionArn = requestHumanLoopConfig_humanLoopConfig_FlowDefinitionArn; requestHumanLoopConfigIsNull = false; } System.String requestHumanLoopConfig_humanLoopConfig_HumanLoopName = null; if (cmdletContext.HumanLoopConfig_HumanLoopName != null) { requestHumanLoopConfig_humanLoopConfig_HumanLoopName = cmdletContext.HumanLoopConfig_HumanLoopName; } if (requestHumanLoopConfig_humanLoopConfig_HumanLoopName != null) { request.HumanLoopConfig.HumanLoopName = requestHumanLoopConfig_humanLoopConfig_HumanLoopName; requestHumanLoopConfigIsNull = false; } Amazon.Textract.Model.HumanLoopDataAttributes requestHumanLoopConfig_humanLoopConfig_DataAttributes = null; // populate DataAttributes var requestHumanLoopConfig_humanLoopConfig_DataAttributesIsNull = true; requestHumanLoopConfig_humanLoopConfig_DataAttributes = new Amazon.Textract.Model.HumanLoopDataAttributes(); List <System.String> requestHumanLoopConfig_humanLoopConfig_DataAttributes_dataAttributes_ContentClassifier = null; if (cmdletContext.DataAttributes_ContentClassifier != null) { requestHumanLoopConfig_humanLoopConfig_DataAttributes_dataAttributes_ContentClassifier = cmdletContext.DataAttributes_ContentClassifier; } if (requestHumanLoopConfig_humanLoopConfig_DataAttributes_dataAttributes_ContentClassifier != null) { requestHumanLoopConfig_humanLoopConfig_DataAttributes.ContentClassifiers = requestHumanLoopConfig_humanLoopConfig_DataAttributes_dataAttributes_ContentClassifier; requestHumanLoopConfig_humanLoopConfig_DataAttributesIsNull = false; } // determine if requestHumanLoopConfig_humanLoopConfig_DataAttributes should be set to null if (requestHumanLoopConfig_humanLoopConfig_DataAttributesIsNull) { requestHumanLoopConfig_humanLoopConfig_DataAttributes = null; } if (requestHumanLoopConfig_humanLoopConfig_DataAttributes != null) { request.HumanLoopConfig.DataAttributes = requestHumanLoopConfig_humanLoopConfig_DataAttributes; requestHumanLoopConfigIsNull = false; } // determine if request.HumanLoopConfig should be set to null if (requestHumanLoopConfigIsNull) { request.HumanLoopConfig = null; } CmdletOutput output; // issue call var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint); try { var response = CallAWSServiceOperation(client, request); object pipelineOutput = null; pipelineOutput = cmdletContext.Select(response, this); output = new CmdletOutput { PipelineOutput = pipelineOutput, ServiceResponse = response }; } catch (Exception e) { output = new CmdletOutput { ErrorResponse = e }; } return(output); } finally { if (_Document_ByteStream != null) { _Document_ByteStream.Dispose(); } } }