internal void UploadBlobTestGB(Agent agent, StorageBlob.BlobType blobType) { string uploadFilePath = @".\" + Utility.GenNameString("gbupload"); string containerName = Utility.GenNameString("gbupload-"); string blobName = Path.GetFileName(uploadFilePath); // create the container CloudBlobContainer container = blobUtil.CreateContainer(containerName); // Generate a 512 bytes file which contains GB18030 characters File.WriteAllText(uploadFilePath, GB18030String); try { //--------------Upload operation-------------- Test.Assert(agent.SetAzureStorageBlobContent(uploadFilePath, containerName, blobType), Utility.GenComparisonData("SendAzureStorageBlob", true)); ICloudBlob blob = CloudBlobUtil.GetBlob(container, blobName, blobType); Test.Assert(blob != null && blob.Exists(), "blob " + blobName + " should exist!"); // Check MD5 string localMd5 = Helper.GetFileContentMD5(uploadFilePath); blob.FetchAttributes(); Test.Assert(localMd5 == blob.Properties.ContentMD5, string.Format("blob content md5 should be {0}, and actualy it's {1}", localMd5, blob.Properties.ContentMD5)); } finally { // cleanup container.DeleteIfExists(); File.Delete(uploadFilePath); } }
internal void CopyBlobTestGB(Agent agent, StorageBlob.BlobType blobType) { string uploadFilePath = @".\" + Utility.GenNameString("gbupload"); string srcContainerName = Utility.GenNameString("gbupload-", 15); string destContainerName = Utility.GenNameString("gbupload-", 15); string blobName = Path.GetFileName(uploadFilePath); // create the container CloudBlobContainer srcContainer = blobUtil.CreateContainer(srcContainerName); CloudBlobContainer destContainer = blobUtil.CreateContainer(destContainerName); // Generate a 512 bytes file which contains GB18030 characters File.WriteAllText(uploadFilePath, GB18030String); string localMd5 = Helper.GetFileContentMD5(uploadFilePath); try { // create source blob ICloudBlob blob = CloudBlobUtil.GetBlob(srcContainer, blobName, blobType); // upload file data using (var fileStream = System.IO.File.OpenRead(uploadFilePath)) { blob.UploadFromStream(fileStream); // need to set MD5 as for page blob, it won't set MD5 automatically blob.Properties.ContentMD5 = localMd5; blob.SetProperties(); } //--------------Copy blob operation-------------- Test.Assert(agent.StartAzureStorageBlobCopy(srcContainerName, blobName, destContainerName, blobName), Utility.GenComparisonData("Start copy blob using blob name", true)); // Get destination blob blob = CloudBlobUtil.GetBlob(destContainer, blobName, blobType); // Check MD5 blob.FetchAttributes(); Test.Assert(localMd5 == blob.Properties.ContentMD5, string.Format("blob content md5 should be {0}, and actualy it's {1}", localMd5, blob.Properties.ContentMD5)); } finally { // cleanup srcContainer.DeleteIfExists(); destContainer.DeleteIfExists(); File.Delete(uploadFilePath); } }
internal void DownloadBlobTestGB(Agent agent, StorageBlob.BlobType blobType) { string uploadFilePath = @".\" + Utility.GenNameString("gbupload"); string downloadFilePath = @".\" + Utility.GenNameString("gbdownload"); string containerName = Utility.GenNameString("gbupload-"); string blobName = Path.GetFileName(uploadFilePath); // create the container CloudBlobContainer container = blobUtil.CreateContainer(containerName); // Generate a 512 bytes file which contains GB18030 characters File.WriteAllText(uploadFilePath, GB18030String); try { // create source blob ICloudBlob blob = CloudBlobUtil.GetBlob(container, blobName, blobType); // upload file data using (var fileStream = System.IO.File.OpenRead(uploadFilePath)) { blob.UploadFromStream(fileStream); } //--------------Download operation-------------- Test.Assert(agent.GetAzureStorageBlobContent(blobName, downloadFilePath, containerName, true), "download blob should be successful"); // Check MD5 string localMd5 = Helper.GetFileContentMD5(downloadFilePath); string uploadMd5 = Helper.GetFileContentMD5(uploadFilePath); blob.FetchAttributes(); Test.Assert(localMd5 == uploadMd5, string.Format("blob content md5 should be {0}, and actualy it's {1}", localMd5, uploadMd5)); } finally { // cleanup container.DeleteIfExists(); File.Delete(uploadFilePath); File.Delete(downloadFilePath); } }
public void UploadBlobWithSpeicialChars(StorageBlob.BlobType blobType) { string filePath = FileUtil.GenerateOneTempTestFile(); CloudBlobContainer container = blobUtil.CreateContainer(); string blobName = SpecialChars; try { string localMD5 = FileUtil.GetFileContentMD5(filePath); Test.Assert(CommandAgent.SetAzureStorageBlobContent(filePath, container.Name, blobType, blobName, true), "upload a blob name with special chars should succeed"); CloudBlob blob = CloudBlobUtil.GetBlob(container, blobName, blobType); blob.FetchAttributes(); ExpectEqual(localMD5, blob.Properties.ContentMD5, "content md5"); } finally { blobUtil.RemoveContainer(container.Name); FileUtil.RemoveFile(filePath); } }
public void UploadBlobWithZeroSize(StorageBlob.BlobType blobType) { string filePath = FileUtil.GenerateOneTempTestFile(0, 0); CloudBlobContainer container = blobUtil.CreateContainer(); string blobName = Utility.GenNameString("blob"); try { string localMD5 = FileUtil.GetFileContentMD5(filePath); Test.Assert(CommandAgent.SetAzureStorageBlobContent(filePath, container.Name, blobType, blobName, true), "upload blob with zero size should succeed"); CloudBlob blob = CloudBlobUtil.GetBlob(container, blobName, blobType); blob.FetchAttributes(); ExpectEqual(localMD5, blob.Properties.ContentMD5, "content md5"); } finally { blobUtil.RemoveContainer(container.Name); FileUtil.RemoveFile(filePath); } }
public void SetBlobContentForExistsBlobWithForce() { string filePath = FileUtil.GenerateOneTempTestFile(); CloudBlobContainer container = blobUtil.CreateContainer(); string blobName = Utility.GenNameString("blob"); CloudBlob blob = blobUtil.CreateRandomBlob(container, blobName); try { string localMD5 = FileUtil.GetFileContentMD5(filePath); Test.Assert(CommandAgent.SetAzureStorageBlobContent(filePath, container.Name, blob.BlobType, blob.Name, true), "set blob content with force parameter should succeed"); blob = CloudBlobUtil.GetBlob(container, blobName, blob.BlobType); blob.FetchAttributes(); ExpectEqual(localMD5, blob.Properties.ContentMD5, "content md5"); } finally { blobUtil.RemoveContainer(container.Name); FileUtil.RemoveFile(filePath); } }