Beispiel #1
0
 //Zip a local directory to arhives folder of the container
 public void ZipLocalDirectoryToContainer(string container, string directoryPath)
 {
     ZipFile zf = new ZipFile();
     zf.AddDirectory(directoryPath);
     var zipFilePath = Path.GetDirectoryName(directoryPath) + Path.GetFileName(directoryPath) + ".zip";
     zf.Save(zipFilePath);
     zf.Dispose();
     var blobName =  "archives/" + Path.GetFileName(directoryPath) + ".zip";
     var blobStorage = new BlobStorage(container);
     blobStorage.PutBlob(blobName, zipFilePath);
 }
Beispiel #2
0
 //Upload file to a specific folder. Check whether it is zip file. If it is, unzip it and upload the whole folder.
 public bool UploadFileOnSpecificFolder(string container, string filePath, string folderNameInContainer, string FileOrFolderNameInContainer)
 {
     BlobStorage blobStorage = new BlobStorage(container);
     if (string.IsNullOrEmpty(folderNameInContainer) || string.IsNullOrWhiteSpace(folderNameInContainer))
     {
         return false;
     }
     if (System.IO.Path.GetExtension(filePath) == ".zip")
     {
         var unzipedFolderPath = blobStorage.UnZipFiles(filePath);
         blobStorage.UploadFolder(container, unzipedFolderPath, folderNameInContainer + "/" + FileOrFolderNameInContainer);
         Directory.Delete(unzipedFolderPath, true);
     }
     else
     {
         blobStorage.PutBlob(folderNameInContainer + "/" + FileOrFolderNameInContainer, filePath);
     }
     return true;
 }
Beispiel #3
0
        //Zip an directory from container and zip it, then put it in arhives file. return the blob info
        public Blob ZipBlobDirectoryToArchives(string container, string folderNameInContainer)
        {
            var blobStorage = new BlobStorage(container);
            //Use local storage
            LocalResource myStorage = RoleEnvironment.GetLocalResource("LocalStorage1");

            string filePath = Path.Combine(myStorage.RootPath, folderNameInContainer);
            //Download all files to local storage
            blobStorage.DownloadToLocalStorage(myStorage, folderNameInContainer, filePath);
            //Zip the directory
            ZipFile zipFile = new ZipFile();
            string zipPath = filePath + ".zip";
            zipFile.AddDirectory(filePath);
            zipFile.Save(zipPath);
            zipFile.Dispose();
            //Put it back to archives folder of container
            string uploadPath =  Path.Combine("archives", Path.GetFileName(zipPath));
            var blob = new Blob();
            blob.Name = Path.GetFileName(zipPath);
            blob.Uri =  blobStorage.PutBlob(uploadPath, zipPath);
            return blob;
        }