static void PutObjectWithQuestionableKey(IAmazonS3 s3Client, string bucketName, string keyName)
{
const string testContent = "Some stuff to write as content";
s3Client.PutObject(new PutObjectRequest
{
BucketName = bucketName,
Key = keyName,
ContentBody = testContent
});
var response = s3Client.GetObject(new GetObjectRequest
{
BucketName = bucketName,
Key = keyName
});
using (var s = new StreamReader(response.ResponseStream))
{
var responseContent = s.ReadToEnd();
Assert.AreEqual(testContent, responseContent);
}
var presignedUrl = s3Client.GetPreSignedURL(new GetPreSignedUrlRequest
{
BucketName = bucketName,
Key = keyName,
Verb = HttpVerb.GET,
Expires = DateTime.Now + TimeSpan.FromDays(5)
});
var httpRequest = HttpWebRequest.Create(presignedUrl);
using(var httpResponse = httpRequest.GetResponse())
using(var reader = new StreamReader(httpResponse.GetResponseStream()))
{
var content = reader.ReadToEnd();
Assert.AreEqual(testContent, content);
}
}
}