Class: Gitlab::Ci::Artifacts::DecompressedArtifactSizeValidator
- Inherits:
-
Object
- Object
- Gitlab::Ci::Artifacts::DecompressedArtifactSizeValidator
- Defined in:
- lib/gitlab/ci/artifacts/decompressed_artifact_size_validator.rb
Constant Summary collapse
- DEFAULT_MAX_BYTES =
4.gigabytes.freeze
- FILE_FORMAT_VALIDATORS =
{ gzip: ::Gitlab::Ci::DecompressedGzipSizeValidator }.freeze
- FileDecompressionError =
Class.new(StandardError)
Instance Method Summary collapse
-
#initialize(file:, file_format:, max_bytes: DEFAULT_MAX_BYTES) ⇒ DecompressedArtifactSizeValidator
constructor
A new instance of DecompressedArtifactSizeValidator.
- #validate! ⇒ Object
Constructor Details
#initialize(file:, file_format:, max_bytes: DEFAULT_MAX_BYTES) ⇒ DecompressedArtifactSizeValidator
Returns a new instance of DecompressedArtifactSizeValidator.
15 16 17 18 19 20 |
# File 'lib/gitlab/ci/artifacts/decompressed_artifact_size_validator.rb', line 15 def initialize(file:, file_format:, max_bytes: DEFAULT_MAX_BYTES) @file = file @file_path = file&.path @file_format = file_format @max_bytes = max_bytes end |
Instance Method Details
#validate! ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/gitlab/ci/artifacts/decompressed_artifact_size_validator.rb', line 22 def validate! validator_class = FILE_FORMAT_VALIDATORS[file_format.to_sym] return if file_path.nil? return if validator_class.nil? if file.respond_to?(:object_store) && file.object_store == ObjectStorage::Store::REMOTE return if valid_on_storage?(validator_class) elsif validator_class.new(archive_path: file_path, max_bytes: max_bytes).valid? return end raise(FileDecompressionError, 'File decompression error') end |