Module: Gcloud::Upload

Defined in:
lib/gcloud/upload.rb

Overview

# Upload Settings

Upload allows users to configure how files are uploaded to the Google Cloud Service APIs.

Examples:

require "gcloud/upload"

# Set the default threshold to 10 MiB.
Gcloud::Upload.resumable_threshold = 10_000_000

Class Method Summary collapse

Class Method Details

.default_chunk_sizeObject

Default chunk size used on resumable uploads.

The default value is 10 MB (10,485,760 bytes).



52
53
54
# File 'lib/gcloud/upload.rb', line 52

def self.default_chunk_size
  @@default_chunk_size
end

.default_chunk_size=(new_chunk_size) ⇒ Object

Sets a new default chunk_size value in number of bytes. Must be a multiple of 256KB (262,144).



59
60
61
62
# File 'lib/gcloud/upload.rb', line 59

def self.default_chunk_size= new_chunk_size
  new_chunk_size = normalize_chunk_size new_chunk_size
  @@default_chunk_size = new_chunk_size if new_chunk_size
end

.normalize_chunk_size(chunk_size) ⇒ Object

Returns lowest possible chunk_size if given a very small value.



67
68
69
70
71
72
73
74
75
# File 'lib/gcloud/upload.rb', line 67

def self.normalize_chunk_size chunk_size
  chunk_size = chunk_size.to_i
  chunk_mod = 256 * 1024 # 256KB
  if (chunk_size.to_i % chunk_mod) != 0
    chunk_size = (chunk_size / chunk_mod) * chunk_mod
  end
  return chunk_mod if chunk_size.zero?
  chunk_size
end

.resumable_thresholdObject

Retrieve resumable threshold. If uploads are larger in size than this value then resumable uploads are used.

The default value is 5 MiB (5,000,000 bytes).



38
39
40
# File 'lib/gcloud/upload.rb', line 38

def self.resumable_threshold
  @@resumable_threshold
end

.resumable_threshold=(new_resumable_threshold) ⇒ Object

Sets a new resumable threshold value in number of bytes.



44
45
46
# File 'lib/gcloud/upload.rb', line 44

def self.resumable_threshold= new_resumable_threshold
  @@resumable_threshold = new_resumable_threshold.to_i
end

.verify_chunk_size(chunk_size, file_size) ⇒ Object

Returns the default chunk_size if one is not provided.



80
81
82
83
84
85
86
87
88
89
# File 'lib/gcloud/upload.rb', line 80

def self.verify_chunk_size chunk_size, file_size
  if chunk_size.to_i.zero?
    return nil if file_size < default_chunk_size
    return default_chunk_size
  else
    chunk_size = normalize_chunk_size chunk_size
    return nil if file_size < chunk_size
    return chunk_size
  end
end