/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context) { DeleteArchiveResponse response = new DeleteArchiveResponse(); return(response); }
private static bool DeleteArchive(string vaultName, string archiveId) { try { using (IAmazonGlacier client = new AmazonGlacierClient(RegionEndpoint.EUWest1)) { DeleteArchiveRequest request = new DeleteArchiveRequest() { VaultName = vaultName, ArchiveId = archiveId }; DeleteArchiveResponse response = client.DeleteArchive(request); return(response.HttpStatusCode == System.Net.HttpStatusCode.NoContent); } } catch (ResourceNotFoundException) { return(true); // already removed } }
// Commented out because the would leave data in glacier that would cost money //[TestMethod] //[TestCategory("Glacier")] public void TestMultiPartUpload() { var testingVaultName = "dotnet-sdk-test" + DateTime.Now.Ticks.ToString(); Client.CreateVault(new CreateVaultRequest() { VaultName = testingVaultName }); InitiateMultipartUploadRequest initRequest = new InitiateMultipartUploadRequest() { VaultName = testingVaultName, ArchiveDescription = "dotnet mp upload", PartSize = 1048576 }; InitiateMultipartUploadResponse initResponse = Client.InitiateMultipartUpload(initRequest); string uploadId = initResponse.UploadId; MemoryStream totalStream = new MemoryStream(); for (int i = 0; i < 1048576 + 1048576 / 2; i++) { totalStream.WriteByte((byte)(i % byte.MaxValue)); } totalStream.Position = 0; List <string> md5s = new List <string>(); long currentPosition = 0; long partSize = 1048576; while (totalStream.Position < totalStream.Length) { Stream partStream = GlacierUtils.CreatePartStream(totalStream, partSize); string checkSum = TreeHashGenerator.CalculateTreeHash(partStream); md5s.Add(checkSum); UploadMultipartPartRequest partRequest = new UploadMultipartPartRequest() { VaultName = testingVaultName, UploadId = uploadId, Body = partStream, Checksum = checkSum }; partRequest.SetRange(currentPosition, currentPosition + partStream.Length - 1); Client.UploadMultipartPart(partRequest); currentPosition += partStream.Length; } CompleteMultipartUploadRequest compRequest = new CompleteMultipartUploadRequest() { VaultName = testingVaultName, UploadId = uploadId, ArchiveSize = totalStream.Length.ToString(), Checksum = TreeHashGenerator.CalculateTreeHash(md5s) }; CompleteMultipartUploadResponse compResponse = Client.CompleteMultipartUpload(compRequest); Assert.IsNotNull(compResponse.Location); Assert.IsNotNull(compResponse.Checksum); string archiveId = compResponse.ArchiveId; DeleteArchiveRequest delArchiveRequest = new DeleteArchiveRequest() { VaultName = testingVaultName, ArchiveId = archiveId }; DeleteArchiveResponse delArchiveResponse = Client.DeleteArchive(delArchiveRequest); }