public void PutPreSignedUriDefaultPositiveTest()
{
var testStr = FileUtils.GenerateOneKb();
var bytes = Encoding.ASCII.GetBytes(testStr);
//calculate the expected ETag
var expectedETag = FileUtils.ComputeContentMd5(new MemoryStream(bytes));
HttpWebRequest req = null;
HttpWebResponse res = null;
var now = DateTime.Now;
//set expiration time to 5 seconds later
var expireDate = now.AddSeconds(5);
var targetObject = OssTestUtils.GetObjectKey(_className);
var uri = _ossClient.GeneratePresignedUri(_bucketName, targetObject, expireDate, SignHttpMethod.Put);
try
{
req = WebRequest.Create(uri) as HttpWebRequest;
req.Method = "PUT";
using (var stream = req.GetRequestStream())
{
stream.Write(bytes, 0, bytes.Length);
}
try
{
res = req.GetResponse() as HttpWebResponse;
Assert.AreEqual(HttpStatusCode.OK, res.StatusCode, "response status code is not expected.");
//get the uploaded object ETag
var actualETag = _ossClient.GetObjectMetadata(_bucketName, targetObject).ETag;
Assert.AreEqual(expectedETag.ToLowerInvariant(), actualETag.ToLowerInvariant(),
"Uploaded object ETag value is not expected");
}
catch (WebException)
{
//TODO:
}
}
finally
{
if (req != null) req.Abort();
if (res != null) res.Close();
}
}