public DetectFacesResponse Recognise(RecogniseParams recParam) { //1. PutObjectIntoS3 if (String.IsNullOrEmpty(recParam.PhotoName)) { throw new Exception("AmazonRekognition Recognise method: photoName parameter must have value."); } var photoName = $"{recParam.PhotoName}_{DateTime.Now}"; var pop = new PutObjectParams() { PhotoName = photoName, PhotoVersion = recParam.PhotoVersion, BucketName = recParam.BucketName, RegEndpoint = recParam.RegEndpoint, InputStrem = recParam.InputStream, ContentType = recParam.ContentType }; var resp = PutObjectIntoS3(pop); if (resp == null) { throw new Exception($"PutObjectIntoS3 response is null in Recognise method PhotoName: {photoName}"); } //2. DetectFaces var dfp = new DetectFaceParams() { PhotoName = photoName, PhotoVersion = recParam.PhotoVersion, BucketName = recParam.BucketName, RegEndpoint = recParam.RegEndpoint }; var detectFaceResp = DetectFaces(dfp); if (detectFaceResp == null) { throw new Exception($"DetectFaces response is null in Recognise method PhotoName: {photoName}"); } return(detectFaceResp); }
public async Task <ObjectID> PutObject(CancellationToken context, PutObjectParams param, CallOptions options = null) { var object_client = new ObjectService.ObjectServiceClient(channel); var obj = param.Object; var call = object_client.Put(cancellationToken: context); var opts = DefaultCallOptions.ApplyCustomOptions(options); var req_stream = call.RequestStream; var req = new PutRequest(); var body = new PutRequest.Types.Body(); req.Body = body; var address = new Address { ContainerId = obj.Header.ContainerId, ObjectId = obj.ObjectId, }; var meta = opts.GetRequestMetaHeader(); AttachObjectSessionToken(opts, meta, address, ObjectSessionContext.Types.Verb.Put); req.MetaHeader = meta; var init = new PutRequest.Types.Body.Types.Init { ObjectId = obj.ObjectId, Signature = obj.Signature, Header = obj.Header, }; req.Body.Init = init; req.SignRequest(key); await req_stream.WriteAsync(req); int offset = 0; while (offset < obj.Payload.Length) { var end = offset + Object.Object.ChunkSize > obj.Payload.Length ? obj.Payload.Length : offset + Object.Object.ChunkSize; var chunk = ByteString.CopyFrom(obj.Payload.ToByteArray()[offset..end]);
public PutObjectResponse PutObjectIntoS3(PutObjectParams pop) { var config = new AmazonS3Config() { RegionEndpoint = pop.RegEndpoint }; PutObjectResponse resp = null; try { var putReq = new PutObjectRequest { BucketName = pop.BucketName, Key = pop.PhotoName, InputStream = pop.InputStrem, //FilePath = filePath, ContentType = pop.ContentType }; putReq.Metadata.Add("x-amz-meta-title", "faceRecognitionImages"); using (s3Client = new AmazonS3Client(awsAccessKeyId, awsSecretAccessKey, config)) { resp = s3Client.PutObject(putReq); } if (resp == null) { throw new Exception("AmazonS3Client PutObject method call return null."); } } catch (Exception e) { Console.WriteLine(e.Message); } return(resp); }