google-apis-core 0.9.5 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 73217f42c55dafb8c4c82e4566474053393c4e83526e70bab6df345e5c7f12bf
4
- data.tar.gz: 141a4ab5f035ba25b5659678d335ca5993cdc36f25aa6991cb89a232c50209d0
3
+ metadata.gz: 330bf699ecc5c12098da65f7b89e276d3670fb6cca1270960820d5c369be806d
4
+ data.tar.gz: 843c6278d958141541fb12176f3eec28d0a0c6e09fbefd2d27a717ef59859bba
5
5
  SHA512:
6
- metadata.gz: a6067ed473ae306fa5682dd04fe57427259866527d66ccf72f687134f7367cb3936c4237287257fff14baf4393788110ec59c9cf5b5a6e9ebce4638ccb825ee2
7
- data.tar.gz: ee192eae9e1e172dab3fe8680eed856cbfea34f998384c6fe0c6197d509c76ae7c0d0063004a0cdf74b9e060732c7a6b645e46fdda4df76f15644cdc872330d0
6
+ metadata.gz: 41ec08bdf72e469182007ba51c0175c45705d5bc45d651bafe14635f31f4ccbba4d9ba5ff10774e1170144d3196b88ad493d324b7450c009685ec80770e43f28
7
+ data.tar.gz: a2f3ceec0e14b0d6af9bfcbf47627afb30f39764713f6e8d187413e54dab46446416911257b6f40a2baf1fa91471ef30f7e14dfe0b2b111057bb736bc7e00119
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Release History
2
2
 
3
+ ### 0.10.0 (2023-01-26)
4
+
5
+ #### Features
6
+
7
+ * Allow chunk size zero for storage resumable upload ([#13283](https://github.com/googleapis/google-api-ruby-client/issues/13283))
8
+ * Make chunk size configurable ([#13216](https://github.com/googleapis/google-api-ruby-client/issues/13216))
9
+
3
10
  ### 0.9.5 (2023-01-12)
4
11
 
5
12
  #### Bug Fixes
@@ -32,7 +32,6 @@ module Google
32
32
  CONTENT_RANGE_HEADER = "Content-Range"
33
33
  RESUMABLE = "resumable"
34
34
  OK_STATUS = 200
35
- CHUNK_SIZE = 8 * 1024 * 1024 # 8 MB
36
35
 
37
36
  # File name or IO containing the content to upload
38
37
  # @return [String, File, #read]
@@ -46,6 +45,10 @@ module Google
46
45
  # @return [Google::Apis::Core::UploadIO]
47
46
  attr_accessor :upload_io
48
47
 
48
+ # Upload chunk size
49
+ # @return [Integer]
50
+ attr_accessor :upload_chunk_size
51
+
49
52
  # Ensure the content is readable and wrapped in an IO instance.
50
53
  #
51
54
  # @return [void]
@@ -92,6 +95,7 @@ module Google
92
95
  def execute(client)
93
96
  prepare!
94
97
  opencensus_begin_span
98
+ @upload_chunk_size = options.upload_chunk_size
95
99
 
96
100
  do_retry :initiate_resumable_upload, client
97
101
  while @upload_incomplete
@@ -137,7 +141,7 @@ module Google
137
141
  logger.debug { sprintf('Sending upload command to %s', @upload_url) }
138
142
 
139
143
  remaining_content_size = upload_io.size - @offset
140
- current_chunk_size = remaining_content_size < CHUNK_SIZE ? remaining_content_size : CHUNK_SIZE
144
+ current_chunk_size = get_current_chunk_size remaining_content_size
141
145
 
142
146
  request_header = header.dup
143
147
  request_header[CONTENT_RANGE_HEADER] = get_content_range_header current_chunk_size
@@ -177,6 +181,15 @@ module Google
177
181
  upload_source.is_a?(IO) || upload_source.is_a?(StringIO) || upload_source.is_a?(Tempfile)
178
182
  end
179
183
 
184
+ def get_current_chunk_size remaining_content_size
185
+ # Disable chunking if the chunk size is set to zero.
186
+ if @upload_chunk_size == 0
187
+ remaining_content_size
188
+ else
189
+ remaining_content_size < @upload_chunk_size ? remaining_content_size : @upload_chunk_size
190
+ end
191
+ end
192
+
180
193
  def get_content_range_header current_chunk_size
181
194
  if upload_io.size == 0
182
195
  numerator = "*"
@@ -16,7 +16,7 @@ module Google
16
16
  module Apis
17
17
  module Core
18
18
  # Core version
19
- VERSION = "0.9.5".freeze
19
+ VERSION = "0.10.0".freeze
20
20
  end
21
21
  end
22
22
  end
@@ -40,7 +40,8 @@ module Google
40
40
  :use_opencensus,
41
41
  :quota_project,
42
42
  :query,
43
- :add_invocation_id_header)
43
+ :add_invocation_id_header,
44
+ :upload_chunk_size)
44
45
 
45
46
  # General client options
46
47
  class ClientOptions
@@ -98,6 +99,8 @@ module Google
98
99
  # @return [Hash<String,String>] Additional HTTP URL query parameters to include in requests.
99
100
  # @!attribute [rw] add_invocation_id_header
100
101
  # @return [Boolean] True if the header gccl-invocation-id need to be set
102
+ # @!attribute [rw] upload_chunk_size
103
+ # @return [Integer] The chunk size of storage upload. The default value is 100 MB.
101
104
 
102
105
  # Get the default options
103
106
  # @return [Google::Apis::RequestOptions]
@@ -133,5 +136,6 @@ module Google
133
136
  RequestOptions.default.use_opencensus = true
134
137
  RequestOptions.default.quota_project = nil
135
138
  RequestOptions.default.add_invocation_id_header = false
139
+ RequestOptions.default.upload_chunk_size = 100 * 1024 * 1024 # 100 MB
136
140
  end
137
141
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-apis-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.5
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-12 00:00:00.000000000 Z
11
+ date: 2023-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: representable
@@ -186,7 +186,7 @@ licenses:
186
186
  metadata:
187
187
  bug_tracker_uri: https://github.com/googleapis/google-api-ruby-client/issues
188
188
  changelog_uri: https://github.com/googleapis/google-api-ruby-client/tree/main/google-apis-core/CHANGELOG.md
189
- documentation_uri: https://googleapis.dev/ruby/google-apis-core/v0.9.5
189
+ documentation_uri: https://googleapis.dev/ruby/google-apis-core/v0.10.0
190
190
  source_code_uri: https://github.com/googleapis/google-api-ruby-client/tree/main/google-apis-core
191
191
  post_install_message:
192
192
  rdoc_options: []