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); }
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); }