Пример #1
0
        public async Task <AwsItemResponse> PutAsync(IAwsItem item)
        {
            AwsItemResponse awsResponse = new AwsItemResponse()
            {
                Item = item
            };

            try
            {
                var request = new PutObjectRequest
                {
                    BucketName  = BucketPath,
                    Key         = item.Key,
                    ContentBody = item.Content,
                    ContentType = item.ContentType
                };

                foreach (string metadataKey in awsResponse.Item.Metadata.Keys)
                {
                    request.Metadata.Add(metadataKey, awsResponse.Item.Metadata[metadataKey]);
                }

                PutObjectResponse objResponse = await _client.PutObjectAsync(request);

                {
                    awsResponse.RequestId      = objResponse.ResponseMetadata.RequestId;
                    awsResponse.HttpStatusCode = objResponse.HttpStatusCode;
                    awsResponse.VersionId      = objResponse.VersionId;
                    awsResponse.ETag           = objResponse.ETag;
                    awsResponse.LastModified   = DateTime.Now;
                }
            }
            catch (AmazonS3Exception amazonS3Exception)
            {
                awsResponse.Exception = amazonS3Exception;
            }
            catch (Exception e)
            {
                awsResponse.Exception = e;
            }

            return(awsResponse);
        }
Пример #2
0
        public async Task <AwsItemResponse> GetAsync(string key)
        {
            AwsItemResponse awsResponse = new AwsItemResponse();

            try
            {
                GetObjectRequest request = new GetObjectRequest
                {
                    BucketName = BucketPath,
                    Key        = key
                };

                using (GetObjectResponse objResponse = await _client.GetObjectAsync(request))
                    using (Stream responseStream = objResponse.ResponseStream)
                        using (StreamReader reader = new StreamReader(responseStream))
                        {
                            awsResponse.HttpStatusCode = objResponse.HttpStatusCode;
                            awsResponse.VersionId      = objResponse.VersionId;
                            awsResponse.ETag           = objResponse.ETag;
                            awsResponse.LastModified   = objResponse.LastModified;

                            awsResponse.Item.ContentType = objResponse.Headers["ContentType"];

                            foreach (string metadataKey in objResponse.Metadata.Keys)
                            {
                                awsResponse.Item.Metadata.Add(metadataKey, objResponse.Metadata[metadataKey]);
                            }

                            awsResponse.Item.Content = reader.ReadToEnd();
                        }
            }
            catch (AmazonS3Exception amazonS3Exception)
            {
                awsResponse.Exception = amazonS3Exception;
            }
            catch (Exception e)
            {
                awsResponse.Exception = e;
            }

            return(awsResponse);
        }