private UploadArchiveResponse StoreArchive(Stream uncompressedContent, string archiveDescription) { using ( var glacierClient = new AmazonGlacierClient(new BasicAWSCredentials(GlacierAccessKey, new Secrets().GetGlacierSecretKey()), GlacierRegion)) { // zip to memory stream var ms = new MemoryStream(); var zipper = new GZipStream(ms, CompressionLevel.Optimal); uncompressedContent.CopyTo(zipper); ms.Seek(0, SeekOrigin.Begin); //calculate sha256 hash var shaTree = TreeHashGenerator.CalculateTreeHash(ms); ms.Seek(0, SeekOrigin.Begin); var result = glacierClient.UploadArchive(new UploadArchiveRequest() { AccountId = GlacierOwnerAccountID, VaultName = GlacierVaultName, ArchiveDescription = archiveDescription, Body = ms, Checksum = shaTree, }); return result; } }