@@ -21,7 +21,7 @@ const STORAGE_CLASS_GLACIER = 'GLACIER'; // "S3 Glacier Flexible Retrieval"
2121/** @type {nb.StorageClass } */
2222const STORAGE_CLASS_GLACIER_IR = 'GLACIER_IR' ; // "S3 Glacier Instant Retrieval"
2323/** @type {nb.StorageClass } */
24- const STORAGE_CLASS_GLACIER_DA = 'GLACIER_DA ' ; // "DBS3 specific Storage Class"
24+ const STORAGE_CLASS_DEEP_ARCHIVE = 'DEEP_ARCHIVE ' ; // "S3 Deep Archive Storage Class"
2525
2626const DEFAULT_S3_USER = Object . freeze ( {
2727 ID : '123' ,
@@ -44,6 +44,12 @@ const X_NOOBAA_AVAILABLE_STORAGE_CLASSES = 'x-noobaa-available-storage-classes';
4444const OBJECT_ATTRIBUTES = Object . freeze ( [ 'ETag' , 'Checksum' , 'ObjectParts' , 'StorageClass' , 'ObjectSize' ] ) ;
4545const OBJECT_ATTRIBUTES_UNSUPPORTED = Object . freeze ( [ 'Checksum' , 'ObjectParts' ] ) ;
4646
47+ /** @type {nb.StorageClass[] } */
48+ const GLACIER_STORAGE_CLASSES = [
49+ STORAGE_CLASS_GLACIER ,
50+ STORAGE_CLASS_DEEP_ARCHIVE ,
51+ ] ;
52+
4753 /**
4854 * get_default_object_owner returns bucket_owner info if exists
4955 * else it'll return the default owner
@@ -381,10 +387,13 @@ function parse_storage_class_header(req) {
381387 * @returns {nb.StorageClass }
382388 */
383389function parse_storage_class ( storage_class ) {
384- if ( ! storage_class ) return STORAGE_CLASS_STANDARD ;
385- if ( storage_class === STORAGE_CLASS_STANDARD ) return STORAGE_CLASS_STANDARD ;
390+ if ( ! storage_class || storage_class === STORAGE_CLASS_STANDARD ) {
391+ if ( config . NSFS_GLACIER_FORCE_STORAGE_CLASS ) return STORAGE_CLASS_GLACIER ;
392+ return STORAGE_CLASS_STANDARD ;
393+ }
394+
386395 if ( storage_class === STORAGE_CLASS_GLACIER ) return STORAGE_CLASS_GLACIER ;
387- if ( storage_class === STORAGE_CLASS_GLACIER_DA ) return STORAGE_CLASS_GLACIER_DA ;
396+ if ( storage_class === STORAGE_CLASS_DEEP_ARCHIVE ) return STORAGE_CLASS_DEEP_ARCHIVE ;
388397 if ( storage_class === STORAGE_CLASS_GLACIER_IR ) return STORAGE_CLASS_GLACIER_IR ;
389398 throw new Error ( `No such s3 storage class ${ storage_class } ` ) ;
390399}
@@ -822,19 +831,11 @@ function parse_body_public_access_block(req) {
822831 return parsed ;
823832}
824833
825- function override_storage_class ( req ) {
826- if (
827- config . NSFS_GLACIER_FORCE_STORAGE_CLASS &&
828- parse_storage_class_header ( req ) === STORAGE_CLASS_STANDARD
829- ) {
830- req . headers [ 'x-amz-storage-class' ] = STORAGE_CLASS_GLACIER ;
831- }
832- }
833834
834835exports . STORAGE_CLASS_STANDARD = STORAGE_CLASS_STANDARD ;
835836exports . STORAGE_CLASS_GLACIER = STORAGE_CLASS_GLACIER ;
836837exports . STORAGE_CLASS_GLACIER_IR = STORAGE_CLASS_GLACIER_IR ;
837- exports . STORAGE_CLASS_GLACIER_DA = STORAGE_CLASS_GLACIER_DA ;
838+ exports . STORAGE_CLASS_DEEP_ARCHIVE = STORAGE_CLASS_DEEP_ARCHIVE ;
838839exports . DEFAULT_S3_USER = DEFAULT_S3_USER ;
839840exports . DEFAULT_OBJECT_ACL = DEFAULT_OBJECT_ACL ;
840841exports . decode_chunked_upload = decode_chunked_upload ;
@@ -876,6 +877,6 @@ exports.key_marker_to_cont_tok = key_marker_to_cont_tok;
876877exports . parse_sse_c = parse_sse_c ;
877878exports . verify_string_byte_length = verify_string_byte_length ;
878879exports . parse_body_public_access_block = parse_body_public_access_block ;
879- exports . override_storage_class = override_storage_class ;
880880exports . OBJECT_ATTRIBUTES = OBJECT_ATTRIBUTES ;
881881exports . OBJECT_ATTRIBUTES_UNSUPPORTED = OBJECT_ATTRIBUTES_UNSUPPORTED ;
882+ exports . GLACIER_STORAGE_CLASSES = GLACIER_STORAGE_CLASSES ;
0 commit comments