in Source/NuGetGallery.Operations/Tasks/Backups/BackupPackageFileTask.cs [27:79]
public override void ExecuteCommand()
{
var client = CreateBlobClient();
var backupClient = BackupStorage.CreateCloudBlobClient();
var backupBlobs = backupClient.GetContainerReference("package-backups");
var packageBlobs = client.GetContainerReference("packages");
if (!WhatIf)
{
backupBlobs.CreateIfNotExists();
}
var backupFileName = Util.GetPackageBackupFileName(
PackageId,
PackageVersion,
PackageHash);
var backupPackageBlob = backupBlobs.GetBlockBlobReference(backupFileName);
if (backupPackageBlob.Exists())
{
Log.Info("Skipped {0} {1}: backup already exists", PackageId, PackageVersion);
return;
}
var packageFileBlob = Util.GetPackageFileBlob(
packageBlobs,
PackageId,
PackageVersion);
var packageFileName = Util.GetPackageFileName(
PackageId,
PackageVersion);
var downloadedPackageFilePath = Path.Combine(Util.GetTempFolder(), packageFileName);
Log.Trace("Downloading package file '{0}' to temporary file '{1}'.", packageFileName, downloadedPackageFilePath);
if (!WhatIf)
{
packageFileBlob.DownloadToFile(downloadedPackageFilePath);
}
Log.Trace("Uploading package file backup '{0}' from temporary file '{1}'.", backupFileName, downloadedPackageFilePath);
if (!WhatIf)
{
backupPackageBlob.UploadFile(downloadedPackageFilePath);
backupPackageBlob.Properties.ContentType = "application/zip";
backupPackageBlob.SetProperties();
}
Log.Trace("Deleting temporary file '{0}'.", downloadedPackageFilePath);
if (!WhatIf)
{
File.Delete(downloadedPackageFilePath);
}
Log.Info("Backed Up {0} {1}", PackageId, PackageVersion);
}