Ejemplo n.º 1
0
        private static async Task <string> UploadToS3(IAmazonS3 s3Client, object obj, IMessageDeliverySettings deliverySettings = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            deliverySettings = deliverySettings ?? new MessageDeliverySettings();
            var key        = Guid.NewGuid().ToString();
            var putRequest = new PutObjectRequest
            {
                BucketName  = deliverySettings.Bucket,
                Key         = key,
                ContentBody = JsonConvert.SerializeObject(obj)
            };
            var upload = await s3Client.PutObjectAsync(putRequest, cancellationToken);

            if (upload.HttpStatusCode != HttpStatusCode.OK)
            {
                throw new AmazonS3Exception($"Error uploading to {deliverySettings.Bucket} with key {key}");
            }
            return(key);
        }
Ejemplo n.º 2
0
        internal static async Task PubSubS3Query(this IAmazonS3 s3Client, SendMessageRequest request, IMessageDeliverySettings deliverySettings = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            var key = await UploadToS3(s3Client, request, deliverySettings, cancellationToken);

            request.MessageBody = "#";
//            request.MessageAttributes = new Dictionary<string, Amazon.SQS.Model.MessageAttributeValue>();
            request.MessageAttributes.Add(Constants.PubSubBucket, new Amazon.SQS.Model.MessageAttributeValue {
                StringValue = deliverySettings.Bucket, DataType = "String"
            });
            request.MessageAttributes.Add(Constants.PubSubKey, new Amazon.SQS.Model.MessageAttributeValue {
                StringValue = key, DataType = "String"
            });
        }