Esta página é somente para clientes atuais do serviço Amazon Glacier que usam Vaults e a API REST original de 2012.
Se você estiver procurando por soluções de armazenamento de arquivos, recomendamos usar as classes de armazenamento Amazon Glacier no Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval e S3 Glacier Deep Archive. Para saber mais sobre essas opções de armazenamento, consulte as classes de armazenamento do Amazon Glacier
O Amazon Glacier (serviço autônomo original baseado em cofre) não aceitará mais novos clientes a partir de 15 de dezembro de 2025, sem impacto para os clientes existentes. O Amazon Glacier é um serviço independente APIs que armazena dados em cofres e é diferente das classes de armazenamento Amazon S3 e Amazon S3 Glacier. Seus dados existentes permanecerão seguros e acessíveis no Amazon Glacier indefinidamente. Nenhuma migração é necessária. Para armazenamento de arquivamento de baixo custo e longo prazo, AWS recomenda as classes de armazenamento Amazon S3 Glacier
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Carregando um arquivo em uma única operação usando o AWS SDK para .NET no Amazon Glacier
Tanto o alto quanto o baixo nível APIs fornecidos pelo Amazon SDK para .NET fornecem um método para carregar um arquivo em uma única operação.
Tópicos
Fazendo o upload de um arquivo usando a API de alto nível do AWS SDK para .NET
A classe ArchiveTransferManager da API de nível superior fornece o método Upload que você pode usar para fazer upload de um arquivo em um cofre.
nota
Você pode usar o método Upload para fazer upload de arquivos pequenos ou grandes. Dependendo do tamanho do arquivo que você estiver fazendo upload, esse método determina se é necessário fazer upload dele em uma única operação ou usar a API de multipart upload para fazer upload do arquivo em partes.
Exemplo: fazer upload de um arquivo usando a API de alto nível do AWS SDK para .NET
O exemplo de código C# a seguir faz upload de um arquivo em um cofre (examplevault) na Região Oeste dos EUA (Oregon).
Para step-by-step obter instruções sobre como executar esse exemplo, consulteExecutar exemplos de código. É preciso atualizar o código conforme mostrado com o nome do arquivo cujo upload deseja fazer.
using System; using Amazon.Glacier; using Amazon.Glacier.Transfer; using Amazon.Runtime; namespace glacier.amazon.com.rproxy.govskope.ca.docsamples { class ArchiveUploadHighLevel { static string vaultName = "examplevault"; static string archiveToUpload = "*** Provide file name (with full path) to upload ***"; public static void Main(string[] args) { try { var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USWest2); // Upload an archive. string archiveId = manager.Upload(vaultName, "upload archive test", archiveToUpload).ArchiveId; Console.WriteLine("Archive ID: (Copy and save this ID for use in other examples.) : {0}", archiveId); Console.WriteLine("To continue, press Enter"); Console.ReadKey(); } catch (AmazonGlacierException e) { Console.WriteLine(e.Message); } catch (AmazonServiceException e) { Console.WriteLine(e.Message); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("To continue, press Enter"); Console.ReadKey(); } } }
Carregando um arquivo em uma única operação usando a API de baixo nível do AWS SDK para .NET
A API de nível inferior fornece métodos para todas as operações de arquivo. Veja a seguir as etapas para carregar um arquivo usando o AWS SDK para .NET.
-
Crie uma instância da classe
AmazonGlacierClient(o cliente).Você precisa especificar uma AWS região na qual deseja fazer o upload do arquivo. Todas as operações que você executa usando esse cliente se aplicam a essa AWS região.
-
Forneça informações sobre a solicitação criando uma instância da classe
UploadArchiveRequest.Além dos dados cujo upload deseja fazer, você precisa fornecer uma soma de verificação (hash de árvore SHA-256) da carga útil, o nome do cofre e o ID da conta.
Se você não fornecer um ID da conta, o ID da conta associado às credenciais fornecidas por você para assinar a solicitação será pressuposto. Para obter mais informações, consulte Usando o AWS SDK para .NET com o Amazon Glacier.
-
Execute o método
UploadArchivefornecendo o objeto de solicitação como um parâmetro.Em resposta, o Amazon Glacier retorna um ID de arquivo do arquivo recém-carregado.
Exemplo: fazer upload de um arquivo em uma única operação usando a API de baixo nível do AWS SDK para .NET
O exemplo de código do C# a seguir ilustra as etapas anteriores. O exemplo usa o AWS SDK para .NET para carregar um arquivo em um cofre (examplevault).
nota
Para obter informações sobre a API REST subjacente para fazer upload de um arquivo em uma única solicitação, consulte Upload Archive (POST archive).
Para step-by-step obter instruções sobre como executar esse exemplo, consulteExecutar exemplos de código. É preciso atualizar o código conforme mostrado com o nome do arquivo cujo upload deseja fazer.
using System; using System.IO; using Amazon.Glacier; using Amazon.Glacier.Model; using Amazon.Runtime; namespace glacier.amazon.com.rproxy.govskope.ca.docsamples { class ArchiveUploadSingleOpLowLevel { static string vaultName = "examplevault"; static string archiveToUpload = "*** Provide file name (with full path) to upload ***"; public static void Main(string[] args) { AmazonGlacierClient client; try { using (client = new AmazonGlacierClient(Amazon.RegionEndpoint.USWest2)) { Console.WriteLine("Uploading an archive."); string archiveId = UploadAnArchive(client); Console.WriteLine("Archive ID: {0}", archiveId); } } catch (AmazonGlacierException e) { Console.WriteLine(e.Message); } catch (AmazonServiceException e) { Console.WriteLine(e.Message); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("To continue, press Enter"); Console.ReadKey(); } static string UploadAnArchive(AmazonGlacierClient client) { using (FileStream fileStream = new FileStream(archiveToUpload, FileMode.Open, FileAccess.Read)) { string treeHash = TreeHashGenerator.CalculateTreeHash(fileStream); UploadArchiveRequest request = new UploadArchiveRequest() { VaultName = vaultName, Body = fileStream, Checksum = treeHash }; UploadArchiveResponse response = client.UploadArchive(request); string archiveID = response.ArchiveId; return archiveID; } } } }