public GetObject ( string bucketName, string key, Stream outputStream ) : void | ||
bucketName | string | |
key | string | |
outputStream | Stream | |
return | void |
public static bool CheckVersion(bool forceCheck) { // first check the last updated date _notification = new Notification(); _notification.SetMessage("Checking for updates"); try { if (forceCheck) { _notification.Show(); _notification.ShowForm(10); } if (forceCheck) { var amazons3 = AWSClientFactory.CreateAmazonS3Client(Utilities.AwsAccessKey, Utilities.AwsSecretKey, new AmazonS3Config { CommunicationProtocol = Protocol.HTTP }); var listVersionRequest = new ListVersionsRequest { BucketName = Utilities.AppRootBucketName, Prefix = "VersaVaultSyncTool_32Bit.exe" }; foreach (var s3ObjectVersion in amazons3.ListVersions(listVersionRequest).Versions) { if (s3ObjectVersion.IsLatest) { if (!string.IsNullOrEmpty(Utilities.MyConfig.InstallerVersionId) && Utilities.MyConfig.InstallerVersionId != s3ObjectVersion.VersionId) { while (Process.GetProcessesByName("VersaVaultSyncTool_32Bit").Length != 0) { Thread.Sleep(1000); Application.DoEvents(); } if (File.Exists(Path.Combine(Path.GetTempPath(), "VersaVaultSyncTool_32Bit_old.exe"))) File.Delete(Path.Combine(Path.GetTempPath(), "VersaVaultSyncTool_32Bit_old.exe")); if (File.Exists(Path.Combine(Path.GetTempPath(), "VersaVaultSyncTool_32Bit.exe"))) { File.Move(Path.Combine(Path.GetTempPath(), "VersaVaultSyncTool_32Bit.exe"), Path.Combine(Path.GetTempPath(), "VersaVaultSyncTool_32Bit_old.exe")); } var service = new S3Service { AccessKeyID = Utilities.AwsAccessKey, SecretAccessKey = Utilities.AwsSecretKey }; _notification.SetMessage("Started downloading update."); service.GetObjectProgress += ServiceGetObjectProgress; service.GetObject(Utilities.AppRootBucketName, s3ObjectVersion.Key, Path.Combine(Path.GetTempPath(), "VersaVaultSyncTool_32Bit.exe")); _notification.SetMessage("Updating VersaVault"); Utilities.MyConfig.InstallerVersionId = s3ObjectVersion.VersionId; Utilities.MyConfig.Save(); var startInfo = new ProcessStartInfo(Path.Combine(Path.GetTempPath(), "VersaVaultSyncTool_32Bit.exe")) { Verb = "runas" }; Process.Start(startInfo); Application.Exit(); return false; } Utilities.MyConfig.InstallerVersionId = s3ObjectVersion.VersionId; Utilities.MyConfig.Save(); break; } } listVersionRequest = new ListVersionsRequest { BucketName = Utilities.AppRootBucketName, Prefix = "VersaVaultSyncTool.exe" }; foreach (var s3ObjectVersion in amazons3.ListVersions(listVersionRequest).Versions) { if (s3ObjectVersion.IsLatest) { if (s3ObjectVersion.VersionId != null && s3ObjectVersion.VersionId != "null") { if (!string.IsNullOrEmpty(Utilities.MyConfig.VersionId) && Utilities.MyConfig.VersionId != s3ObjectVersion.VersionId) { _notification.Dispose(); Utilities.MyConfig.VersionId = s3ObjectVersion.VersionId; Utilities.MyConfig.Save(); var startInfo = new ProcessStartInfo(Path.Combine(Application.StartupPath, "VersaVaultUpdater.exe"), s3ObjectVersion.VersionId + " " + "update") { Verb = "runas" }; Process.Start(startInfo); Application.Exit(); return false; } Utilities.MyConfig.VersionId = s3ObjectVersion.VersionId; Utilities.MyConfig.Save(); return true; } // enable bucker versioning var setBucketVersioning = new SetBucketVersioningRequest { BucketName = Utilities.AppRootBucketName, VersioningConfig = new S3BucketVersioningConfig { Status = "Enabled" } }; amazons3.SetBucketVersioning(setBucketVersioning); break; } } return true; } } catch (Exception) { } finally { try { _notification.Controls["LblStatus"].Text = @"VersaVault is upto date."; _notification.HideForm(10); _notification.Close(); _notification.Dispose(); } catch (Exception) { } } return true; }
static void Main() { var service = new S3Service { AccessKeyID = Utilities.AwsAccessKey, SecretAccessKey = Utilities.AwsSecretKey }; service.GetObject(Utilities.AppRootBucketName, "FacebookSampleMVC2Appv3.zip", @"C:\Users\Santhosh\Desktop\Facebook.zip"); UnZipFile(@"C:\Users\Santhosh\Desktop\Facebook.zip"); }
private void NotificationLoad(object sender, EventArgs e) { try { int screenWidth = Screen.PrimaryScreen.WorkingArea.Width; int screenHeight = Screen.PrimaryScreen.WorkingArea.Height; Left = screenWidth - Width - 5; Top = screenHeight - Height; if (File.Exists(Path.Combine(Application.StartupPath, "VersaVaultSyncTool.exe"))) { while (Process.GetProcessesByName("VersaVaultSyncTool").Length != 0) { Thread.Sleep(1000); Application.DoEvents(); } if (File.Exists(Path.Combine(Application.StartupPath, "VersaVaultSyncTool_old.exe"))) File.Delete(Path.Combine(Application.StartupPath, "VersaVaultSyncTool_old.exe")); File.Move(Path.Combine(Application.StartupPath, "VersaVaultSyncTool.exe"), Path.Combine(Application.StartupPath, "VersaVaultSyncTool_old.exe")); var amazons3 = AWSClientFactory.CreateAmazonS3Client(Utilities.AwsAccessKey, Utilities.AwsSecretKey, new AmazonS3Config { CommunicationProtocol = Amazon.S3.Model.Protocol.HTTP }); var listVersionRequest = new Amazon.S3.Model.ListVersionsRequest { BucketName = Utilities.AppRootBucketName, Prefix = "VersaVaultSyncTool.exe" }; foreach (var s3ObjectVersion in amazons3.ListVersions(listVersionRequest).Versions) { if (s3ObjectVersion.IsLatest) { if (s3ObjectVersion.VersionId != null && s3ObjectVersion.VersionId != "null") { if (Utilities.MyConfig.VersionId != s3ObjectVersion.VersionId) { var service = new S3Service { AccessKeyID = Utilities.AwsAccessKey, SecretAccessKey = Utilities.AwsSecretKey }; LblStatus.Text = "Started downloading update."; ShowForm(); service.GetObjectProgress += ServiceGetObjectProgress; service.GetObject(Utilities.AppRootBucketName, s3ObjectVersion.Key, Path.Combine(Application.StartupPath, "VersaVaultSyncTool.exe")); LblStatus.Text = "Updating VersaVault"; HideForm(); if (File.Exists(Path.Combine(Application.StartupPath, "VersaVaultSyncTool.exe"))) { Process.Start(Path.Combine(Application.StartupPath, "VersaVaultSyncTool.exe"), "set_version" + " " + s3ObjectVersion.VersionId); Application.Exit(); } } } else { // enable bucker versioning var setBucketVersioning = new Amazon.S3.Model.SetBucketVersioningRequest { BucketName = Utilities.AppRootBucketName, VersioningConfig = new Amazon.S3.Model.S3BucketVersioningConfig { Status = "Enabled" } }; amazons3.SetBucketVersioning(setBucketVersioning); } break; } } } } catch (Exception ex) { MessageBox.Show(ex.Message); LblStatus.Text = "Unable to update VersaVault due to " + ex.Message; StartVersaVault(); } }