コード例 #1
0
 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));
     }
 }
コード例 #2
0
        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());
                }
        }
コード例 #3
0
        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)));
            }
        }