Ottenimento di checksum durante il download di dati - Amazon S3 Glacier

Questa pagina è riservata ai clienti esistenti del servizio S3 Glacier che utilizzano Vaults e l'API REST originale del 2012.

Se stai cercando soluzioni di archiviazione, ti consigliamo di utilizzare le classi di storage S3 Glacier in Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval e S3 Glacier Deep Archive. Per ulteriori informazioni su queste opzioni di storage, consulta le classi di storage S3 Glacier e lo storage dei dati a lungo termine con le classi di storage S3 Glacier nella Amazon S3 User Guide. Queste classi di storage utilizzano l'API Amazon S3, sono disponibili in tutte le regioni e possono essere gestite all'interno della console Amazon S3. Offrono funzionalità come Storage Cost Analysis, Storage Lens, funzionalità di sicurezza tra cui diverse opzioni di crittografia e altro ancora.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ottenimento di checksum durante il download di dati

Quando recuperi un archivio utilizzando l'API Initiate Job (vedi Initiate Job (POST jobs)), puoi eventualmente specificare un intervallo di archivio da recuperare. Analogamente, quando scarichi i dati utilizzando l'API Get Job Output (vedi Get Job Output (GET output)), puoi eventualmente specificare un intervallo di dati da scaricare. È necessario comprendere due caratteristiche importanti di questi intervalli quando si recuperano e scaricano i dati di un archivio. L'intervallo da recuperare deve essere allineato in termini di megabyte all'archivio. L'intervallo da recuperare e quello da scaricare devono essere allineati alla struttura hash per poter ricevere valori di checksum durante il download dei dati. La definizione di questi due tipi di allineamenti di intervalli è riportata di seguito:

  • Allineamento in megabyte - Un intervallo [StartByte, EndBytes] è un megabyte (1024*1024) allineato quando StartBytesè divisibile per 1 MB e EndBytespiù 1 è divisibile per 1 MB o è uguale alla fine dell'archivio specificato (dimensione del byte dell'archivio meno 1). Se si specifica l'API Initiate Job, l'intervallo deve essere obbligatoriamente allineato in termini di megabyte.

  • Tree-hash aligned - Un range [StartBytes, EndBytes] è l'hash dell'albero allineato rispetto a un archivio se e solo se la radice dell'hash dell'albero costruito sull'intervallo è equivalente a un nodo nell'hash dell'albero dell'intero archivio. L'intervallo da recuperare e quello da scaricare devono essere allineati alla struttura hash per poter ricevere i valori di checksum dei dati scaricati. Per un esempio di intervalli e della relativa relazione con la struttura hash di un archivio, consulta Esempio di struttura hash: recupero di un intervallo di archivio allineato alla struttura hash.

    Nota che un intervallo allineato alla struttura hash è anche allineato in termini di megabyte. Tuttavia, un intervallo allineato in termini di megabyte non è necessariamente allineato alla struttura hash.

Di seguito sono riportati i casi in cui si ottiene un valore di checksum durante il download dei dati in archivio:

  • Se non specifichi un intervallo da recuperare nella richiesta Initiate Job e scarichi l'intero archivio nella richiesta Get Job.

  • Se non specifichi un intervallo da recuperare nella richiesta Initiate Job e specifichi un intervallo allineato alla struttura hash da scaricare nella richiesta Get Job.

  • Se specifichi un intervallo allineato alla struttura hash da recuperare nella richiesta Initiate Job e scarichi l'intero intervallo nella richiesta Get Job.

  • Se specifichi un intervallo allineato alla struttura hash da recuperare nella richiesta Initiate Job e specifichi un intervallo allineato alla struttura hash da scaricare nella richiesta Get Job.

Se specifichi un intervallo da recuperare nella richiesta Initiate Job che non è allineato alla struttura hash, puoi comunque ottenere i dati in archivio ma nessun valore di checksum viene restituito quando scarichi i dati nella richiesta Get Job.

Esempio di struttura hash: recupero di un intervallo di archivio allineato alla struttura hash

Supponi di avere un archivio di 6,5 MB nel tuo vault e che intendi recuperare 2 MB dell'archivio. Il modo in cui specifichi l'intervallo di 2 MB nella richiesta Initiate Job determina se ricevi i valori di checksum dei dati quando scarichi i dati. Il diagramma seguente illustra due intervalli di 2 MB per l'archivio di 6,5 MB che puoi scaricare. Entrambi gli intervalli sono allineati in termini di megabyte, ma solo uno è allineato alla struttura hash.

Diagramma che mostra il recupero di un intervallo di archivio allineato con tree-hash.

Specifica di un intervallo allineato alla struttura hash

Questa sezione fornisce l'esatta specifica di un intervallo allineato a una struttura hash. Gli intervalli allineati alla struttura hash sono importanti quando scarichi una parte di un archivio e specifichi l'intervallo di dati da recuperare e l'intervallo di dati recuperati da scaricare. Se entrambi questi intervalli sono allineati alla struttura hash, riceverai i valori di checksum quando scarichi i dati.

Un intervallo [A, B] è allineato alla struttura hash rispetto a un archivio se e solo se, quando una nuova struttura hash viene creata su [A, B], la radice della struttura hash di quell'intervallo è equivalente a un nodo nella struttura hash dell'intero archivio. Ciò è illustrato nel diagramma in Esempio di struttura hash: recupero di un intervallo di archivio allineato alla struttura hash. In questa sezione forniamo la specifica per l'allineamento alla struttura hash.

Considera [P, Q) come la query di intervallo di un archivio di N megabyte (MB) e che P e Q sono multipli di 1 MB. Nota che l'intervallo inclusivo effettivo è [P MB, Q MB – 1 byte], ma per semplicità, lo presentiamo come [P, Q). Sulla base di queste considerazioni:

  • Se P è un numero dispari, un solo intervallo allineato alla struttura hash è possibile, ovvero [P, P +1 MB).

  • Se P è un numero pari e k è il numero massimo, dove P può essere scritto come 2k * X, ci sono al massimo k intervalli allineati alla struttura hash che iniziano con P. X è un numero intero maggiore di 0. Gli intervalli allineati alla struttura hash rientrano nelle seguenti categorie:

    • In ogni i, dove (0 <= i <= k) e dove P + 2i < N, [P, Q + 2i) è un intervallo allineato alla struttura hash.

    • P = 0 è il caso speciale dove A = 2[lgN]*0