private async Task <PutObjectResponse> UploadItemAsync(AmazonS3Client s3Client, string bucketName, string path, CancellationToken token) { using (var contentStream = _itemChange.CreateContentStream()) { var request = new PutObjectRequest() { BucketName = bucketName, Key = path + _itemChange.Item.Path, ContentType = _itemChange.Item.ContentMetadata.ContentType, InputStream = contentStream }; return(await s3Client.PutObjectAsync(request, token)); } }
public void CreateTextStream() { var item = new Item(string.Empty) { ContentMetadata = new FileContentMetadata("text/plain", Encoding.UTF8) }; var itemChange = new ItemChange(ItemChangeType.None, item) { NewContent = new ItemContent(ItemContentType.RawText, "Testing") }; using (var stream = itemChange.CreateContentStream()) using (var streamReader = new StreamReader(stream, itemChange.Item.ContentMetadata.Encoding)) { Assert.AreEqual("Testing", streamReader.ReadToEnd()); } }
public void CreateBinaryStream() { var item = new Item(string.Empty) { ContentMetadata = new FileContentMetadata("image/x-icon") }; byte[] content = Encoding.UTF8.GetBytes("Testing"); var itemChange = new ItemChange(ItemChangeType.None, item) { NewContent = new ItemContent(ItemContentType.Base64Encoded, Convert.ToBase64String(content)) }; using (var stream = itemChange.CreateContentStream()) { byte[] streamBytes = new byte[16]; Assert.AreEqual(7, stream.Read(streamBytes, 0, 16)); Assert.IsTrue(content.SequenceEqual(streamBytes.Take(7))); } }