google-cloud-storage 1.44.0 → 1.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7829a0c2c9afddc17d897bd33e73af95e922a4767bfd6d6e8474eec0bac46194
4
- data.tar.gz: 41f4328eb840bb9f2373cd291e2271e95d6f066db1a0dd62dbb7354e9e9c8c0e
3
+ metadata.gz: 1a00be88dfffe243057e1ffe70891fabb483caadc76a7a37e8b82dcdb5f95395
4
+ data.tar.gz: 2190d664457e1419b26b95266d8911728a612647d404790b35f37586dfe59e02
5
5
  SHA512:
6
- metadata.gz: ec55a9d4632ee6f5d3637e6b4dc5d156ba45fc01da7b20d7f2e69a1fa4945d55d300385ee6aafba2244edcdf8fe0f36be1340adb28c074920cfad4eca667af21
7
- data.tar.gz: 2194c91da01d5719d35756e3a9e1aceb49bfd9e15fb0466ddd8a7c4fae64074e06be41ea14437d0ed8698c777ab7c81f5ea6d90d5932336603c7dd99c5907558
6
+ metadata.gz: e5b129dba88921e6aeec6476d60bb17ee603f0cb641194bbeb09531aff568c2290e17ab3f0f290d87976a0b0f35d4f10674dab8fea6deef70d424738a4ce767c
7
+ data.tar.gz: 87e4411cda889bb7bdbf0ccddc2a343ae475614c5cab19d8461bcd646ac78016b6be35975255e14c1af1efcd3c5087c9b769b674260a82f936ef4c0456566a19
data/AUTHENTICATION.md CHANGED
@@ -112,15 +112,6 @@ those that produce
112
112
  post objects. For these methods, authentication using a service account JSON key file
113
113
  is required.
114
114
 
115
- [gce-how-to]: https://cloud.google.com/compute/docs/authentication#using
116
- [dev-console]: https://console.cloud.google.com/project
117
-
118
- [enable-apis]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/enable-apis.png
119
-
120
- [create-new-service-account]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/create-new-service-account.png
121
- [create-new-service-account-existing-keys]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/create-new-service-account-existing-keys.png
122
- [reuse-service-account]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/reuse-service-account.png
123
-
124
115
  ## Creating a Service Account
125
116
 
126
117
  Google Cloud requires a **Project ID** and **Service Account Credentials** to
@@ -130,31 +121,22 @@ connect to most services with google-cloud-storage.
130
121
  If you are not running this client on Google Compute Engine, you need a Google
131
122
  Developers service account.
132
123
 
133
- 1. Visit the [Google Developers Console][dev-console].
124
+ 1. Visit the [Google Cloud Console](https://console.cloud.google.com/project).
134
125
  1. Create a new project or click on an existing project.
135
- 1. Activate the slide-out navigation tray and select **API Manager**. From
126
+ 1. Activate the menu in the upper left and select **APIs & Services**. From
136
127
  here, you will enable the APIs that your application requires.
137
128
 
138
- ![Enable the APIs that your application requires][enable-apis]
139
-
140
129
  *Note: You may need to enable billing in order to use these services.*
141
130
 
142
131
  1. Select **Credentials** from the side navigation.
143
132
 
144
- You should see a screen like one of the following.
145
-
146
- ![Create a new service account][create-new-service-account]
147
-
148
- ![Create a new service account With Existing Keys][create-new-service-account-existing-keys]
149
-
150
- Find the "Add credentials" drop down and select "Service account" to be
151
- guided through downloading a new JSON key file.
152
-
153
- If you want to re-use an existing service account, you can easily generate a
154
- new key file. Just select the account you wish to re-use, and click "Generate
155
- new JSON key":
133
+ Find the "Create credentials" drop down near the top of the page, and select
134
+ "Service account" to be guided through downloading a new JSON key file.
156
135
 
157
- ![Re-use an existing service account][reuse-service-account]
136
+ If you want to re-use an existing service account, you can easily generate
137
+ a new key file. Just select the account you wish to re-use click the pencil
138
+ tool on the right side to edit the service account, select the **Keys** tab,
139
+ and then select **Add Key**.
158
140
 
159
141
  The key file you download will be used by this library to authenticate API
160
142
  requests and should be stored in a secure location.
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Release History
2
2
 
3
+ ### 1.45.0 (2023-11-06)
4
+
5
+ #### Features
6
+
7
+ * added autoclass v2.1 features ([#23483](https://github.com/googleapis/google-cloud-ruby/issues/23483))
8
+
3
9
  ### 1.44.0 (2022-11-02)
4
10
 
5
11
  #### Features
@@ -434,6 +434,24 @@ module Google
434
434
  @gapi.autoclass&.toggle_time
435
435
  end
436
436
 
437
+ ##
438
+ # Terminal Storage class of the autoclass
439
+ #
440
+ # @return [String]
441
+ #
442
+ def autoclass_terminal_storage_class
443
+ @gapi.autoclass&.terminal_storage_class
444
+ end
445
+
446
+ ##
447
+ # Update time at which the autoclass terminal storage class was last modified
448
+ #
449
+ # @return [DateTime]
450
+ #
451
+ def autoclass_terminal_storage_class_update_time
452
+ @gapi.autoclass&.terminal_storage_class_update_time
453
+ end
454
+
437
455
  ##
438
456
  # Updates bucket's autoclass configuration. This defines the default class for objects in the
439
457
  # bucket and down/up-grades the storage class of objects based on the access patterns.
@@ -442,9 +460,6 @@ module Google
442
460
  # For more information, see [Storage
443
461
  # Classes](https://cloud.google.com/storage/docs/using-autoclass).
444
462
  #
445
- # Note: Only patch requests that disable autoclass are currently supported.
446
- # To enable autoclass, you must set it at bucket creation time.
447
- #
448
463
  # @param [Boolean] toggle for autoclass configuration of the bucket.
449
464
  #
450
465
  def autoclass_enabled= toggle
@@ -453,6 +468,25 @@ module Google
453
468
  patch_gapi! :autoclass
454
469
  end
455
470
 
471
+ ##
472
+ # Update method to update all attributes of autoclass of a bucket
473
+ # It accepts params as a Hash of attributes in the following format:
474
+ #
475
+ # { enabled: true, terminal_storage_class: "ARCHIVE" }
476
+ #
477
+ # terminal_storage_class field is optional. It defaults to `NEARLINE`.
478
+ # Valid terminal_storage_class values are `NEARLINE` and `ARCHIVE`.
479
+ #
480
+ # @param [Hash(String => String)] autoclass_attributes
481
+ #
482
+ def update_autoclass autoclass_attributes
483
+ @gapi.autoclass ||= API::Bucket::Autoclass.new
484
+ autoclass_attributes.each do |k, v|
485
+ @gapi.autoclass.send "#{k}=", v
486
+ end
487
+ patch_gapi! :autoclass
488
+ end
489
+
456
490
  ##
457
491
  # Whether [Object
458
492
  # Versioning](https://cloud.google.com/storage/docs/object-versioning)
@@ -94,6 +94,41 @@ module Google
94
94
  service.project_service_account.email_address
95
95
  end
96
96
 
97
+ ##
98
+ # Add custom Google extension headers to the requests that use the signed URLs.
99
+ #
100
+ # @param [Hash] headers Google extension headers (custom HTTP headers that
101
+ # begin with `x-goog-`) to be included in requests that use the signed URLs.
102
+ # Provide headers as a key/value array, where the key is
103
+ # the header name, and the value is an array of header values.
104
+ # For headers with multiple values, provide values as a simple
105
+ # array, or a comma-separated string. For a reference of allowed
106
+ # headers, see [Reference Headers](https://cloud.google.com/storage/docs/xml-api/reference-headers).
107
+ #
108
+ # @return [Google::Cloud::Storage::Project] Returns the Project for method chaining
109
+ #
110
+ def add_custom_headers headers
111
+ @service.add_custom_headers headers
112
+ self
113
+ end
114
+
115
+ ##
116
+ # Add custom Google extension header to the requests that use the signed URLs.
117
+ #
118
+ # @param [String] header_name Name of Google extension header (custom HTTP header that
119
+ # begin with `x-goog-`) to be included in requests that use the signed URLs.
120
+ # For a reference of allowed headers, see
121
+ # [Reference Headers](https://cloud.google.com/storage/docs/xml-api/reference-headers).
122
+ # @param [Object] header_value Valid value of the Google extension header being added.
123
+ # For headers with multiple values, provide values as a simple array, or a comma-separated string.
124
+ #
125
+ # @return [Google::Cloud::Storage::Project] Returns the Project for method chaining
126
+ #
127
+ def add_custom_header header_name, header_value
128
+ @service.add_custom_header header_name, header_value
129
+ self
130
+ end
131
+
97
132
  ##
98
133
  # Retrieves a list of buckets for the given project.
99
134
  #
@@ -43,7 +43,7 @@ module Google
43
43
  timeout: nil, open_timeout: nil, read_timeout: nil,
44
44
  send_timeout: nil, host: nil, quota_project: nil,
45
45
  max_elapsed_time: nil, base_interval: nil, max_interval: nil,
46
- multiplier: nil
46
+ multiplier: nil, upload_chunk_size: nil
47
47
  @project = project
48
48
  @credentials = credentials
49
49
  @service = API::StorageService.new
@@ -65,6 +65,7 @@ module Google
65
65
  @service.request_options.max_interval = max_interval if max_interval
66
66
  @service.request_options.multiplier = multiplier if multiplier
67
67
  @service.request_options.add_invocation_id_header = true
68
+ @service.request_options.upload_chunk_size = upload_chunk_size if upload_chunk_size
68
69
  @service.authorization = @credentials.client if @credentials
69
70
  @service.root_url = host if host
70
71
  end
@@ -794,6 +795,18 @@ module Google
794
795
  "#{self.class}(#{@project})"
795
796
  end
796
797
 
798
+ ##
799
+ # Add custom Google extension headers to the requests that use the signed URLs.
800
+ def add_custom_headers headers
801
+ @service.request_options.header.merge! headers
802
+ end
803
+
804
+ ##
805
+ # Add custom Google extension header to the requests that use the signed URLs.
806
+ def add_custom_header header_name, header_value
807
+ @service.request_options.header[header_name] = header_value
808
+ end
809
+
797
810
  protected
798
811
 
799
812
  def user_project user_project
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module Storage
19
- VERSION = "1.44.0".freeze
19
+ VERSION = "1.45.0".freeze
20
20
  end
21
21
  end
22
22
  end
@@ -67,6 +67,9 @@ module Google
67
67
  # @param [Integer] send_timeout How long, in seconds, before receiving response from server times out. Optional.
68
68
  # @param [String] endpoint Override of the endpoint host name. Optional.
69
69
  # If the param is nil, uses the default endpoint.
70
+ # @param [Integer] upload_chunk_size The chunk size of storage upload, in bytes.
71
+ # The default value is 100 MB, i.e. 104_857_600 bytes. To disable chunking and upload
72
+ # the complete file regardless of size, pass 0 as the chunk size.
70
73
  # @param [String] project Alias for the `project_id` argument. Deprecated.
71
74
  # @param [String] keyfile Alias for the `credentials` argument.
72
75
  # Deprecated.
@@ -89,7 +92,7 @@ module Google
89
92
  timeout: nil, open_timeout: nil, read_timeout: nil,
90
93
  send_timeout: nil, endpoint: nil, project: nil, keyfile: nil,
91
94
  max_elapsed_time: nil, base_interval: nil, max_interval: nil,
92
- multiplier: nil
95
+ multiplier: nil, upload_chunk_size: nil
93
96
  scope ||= configure.scope
94
97
  retries ||= configure.retries
95
98
  timeout ||= configure.timeout
@@ -102,6 +105,7 @@ module Google
102
105
  base_interval ||= configure.base_interval
103
106
  max_interval ||= configure.max_interval
104
107
  multiplier ||= configure.multiplier
108
+ upload_chunk_size ||= configure.upload_chunk_size
105
109
 
106
110
  unless credentials.is_a? Google::Auth::Credentials
107
111
  credentials = Storage::Credentials.new credentials, scope: scope
@@ -117,7 +121,7 @@ module Google
117
121
  read_timeout: read_timeout, send_timeout: send_timeout,
118
122
  host: endpoint, quota_project: configure.quota_project,
119
123
  max_elapsed_time: max_elapsed_time, base_interval: base_interval,
120
- max_interval: max_interval, multiplier: multiplier
124
+ max_interval: max_interval, multiplier: multiplier, upload_chunk_size: upload_chunk_size
121
125
  )
122
126
  )
123
127
  end
@@ -141,6 +145,9 @@ module Google
141
145
  # @param [Integer] send_timeout How long, in seconds, before receiving response from server times out. Optional.
142
146
  # @param [String] endpoint Override of the endpoint host name. Optional.
143
147
  # If the param is nil, uses the default endpoint.
148
+ # @param [Integer] upload_chunk_size The chunk size of storage upload, in bytes.
149
+ # The default value is 100 MB, i.e. 104_857_600 bytes. To disable chunking and upload
150
+ # the complete file regardless of size, pass 0 as the chunk size.
144
151
  #
145
152
  # @return [Google::Cloud::Storage::Project]
146
153
  #
@@ -159,7 +166,7 @@ module Google
159
166
  def self.anonymous retries: nil, timeout: nil, open_timeout: nil,
160
167
  read_timeout: nil, send_timeout: nil, endpoint: nil,
161
168
  max_elapsed_time: nil, base_interval: nil, max_interval: nil,
162
- multiplier: nil
169
+ multiplier: nil, upload_chunk_size: nil
163
170
  open_timeout ||= timeout
164
171
  read_timeout ||= timeout
165
172
  send_timeout ||= timeout
@@ -168,7 +175,7 @@ module Google
168
175
  nil, nil, retries: retries, timeout: timeout, open_timeout: open_timeout,
169
176
  read_timeout: read_timeout, send_timeout: send_timeout, host: endpoint,
170
177
  max_elapsed_time: max_elapsed_time, base_interval: base_interval,
171
- max_interval: max_interval, multiplier: multiplier
178
+ max_interval: max_interval, multiplier: multiplier, upload_chunk_size: upload_chunk_size
172
179
  )
173
180
  )
174
181
  end
@@ -202,6 +209,7 @@ module Google
202
209
  # * `open_timeout` - (Integer) How long, in seconds, before failed connections time out.
203
210
  # * `read_timeout` - (Integer) How long, in seconds, before requests time out.
204
211
  # * `send_timeout` - (Integer) How long, in seconds, before receiving response from server times out.
212
+ # * `upload_chunk_size` - (Integer) The chunk size of storage upload, in bytes.
205
213
  #
206
214
  # @return [Google::Cloud::Config] The configuration object the
207
215
  # Google::Cloud::Storage library uses.
@@ -55,6 +55,9 @@ module Google
55
55
  # @param [Integer] open_timeout How long, in seconds, before failed connections time out. Optional.
56
56
  # @param [Integer] read_timeout How long, in seconds, before requests time out. Optional.
57
57
  # @param [Integer] send_timeout How long, in seconds, before receiving response from server times out. Optional.
58
+ # @param [Integer] upload_chunk_size The chunk size of storage upload, in bytes.
59
+ # The default value is 100 MB, i.e. 104_857_600 bytes. To disable chunking and upload
60
+ # the complete file regardless of size, pass 0 as the chunk size.
58
61
  #
59
62
  # @return [Google::Cloud::Storage::Project]
60
63
  #
@@ -74,7 +77,7 @@ module Google
74
77
  # readonly_storage = gcloud.storage scope: readonly_scope
75
78
  #
76
79
  def storage scope: nil, retries: nil, timeout: nil, open_timeout: nil, read_timeout: nil, send_timeout: nil,
77
- max_elapsed_time: nil, base_interval: nil, max_interval: nil, multiplier: nil
80
+ max_elapsed_time: nil, base_interval: nil, max_interval: nil, multiplier: nil, upload_chunk_size: nil
78
81
  Google::Cloud.storage @project, @keyfile, scope: scope,
79
82
  retries: (retries || @retries),
80
83
  timeout: (timeout || @timeout),
@@ -84,7 +87,8 @@ module Google
84
87
  max_elapsed_time: max_elapsed_time,
85
88
  base_interval: base_interval,
86
89
  max_interval: max_interval,
87
- multiplier: multiplier
90
+ multiplier: multiplier,
91
+ upload_chunk_size: upload_chunk_size
88
92
  end
89
93
 
90
94
  ##
@@ -120,6 +124,9 @@ module Google
120
124
  # @param [Integer] open_timeout How long, in seconds, before failed connections time out. Optional.
121
125
  # @param [Integer] read_timeout How long, in seconds, before requests time out. Optional.
122
126
  # @param [Integer] send_timeout How long, in seconds, before receiving response from server times out. Optional.
127
+ # @param [Integer] upload_chunk_size The chunk size of storage upload, in bytes.
128
+ # The default value is 100 MB, i.e. 104_857_600 bytes. To disable chunking and upload
129
+ # the complete file regardless of size, pass 0 as the chunk size.
123
130
  #
124
131
  # @return [Google::Cloud::Storage::Project]
125
132
  #
@@ -134,7 +141,8 @@ module Google
134
141
  #
135
142
  def self.storage project_id = nil, credentials = nil, scope: nil,
136
143
  retries: nil, timeout: nil, open_timeout: nil, read_timeout: nil, send_timeout: nil,
137
- max_elapsed_time: nil, base_interval: nil, max_interval: nil, multiplier: nil
144
+ max_elapsed_time: nil, base_interval: nil, max_interval: nil, multiplier: nil,
145
+ upload_chunk_size: nil
138
146
  require "google/cloud/storage"
139
147
  Google::Cloud::Storage.new project_id: project_id,
140
148
  credentials: credentials,
@@ -147,7 +155,8 @@ module Google
147
155
  max_elapsed_time: max_elapsed_time,
148
156
  base_interval: base_interval,
149
157
  max_interval: max_interval,
150
- multiplier: multiplier
158
+ multiplier: multiplier,
159
+ upload_chunk_size: upload_chunk_size
151
160
  end
152
161
  end
153
162
  end
@@ -182,6 +191,7 @@ Google::Cloud.configure.add_config! :storage do |config|
182
191
  config.add_field! :open_timeout, nil, match: Integer
183
192
  config.add_field! :read_timeout, nil, match: Integer
184
193
  config.add_field! :send_timeout, nil, match: Integer
194
+ config.add_field! :upload_chunk_size, nil, match: Integer
185
195
  # TODO: Remove once discovery document is updated.
186
196
  config.add_field! :endpoint, "https://storage.googleapis.com/", match: String
187
197
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-storage
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.44.0
4
+ version: 1.45.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Moore
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-11-03 00:00:00.000000000 Z
12
+ date: 2023-11-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: google-cloud-core
@@ -45,14 +45,14 @@ dependencies:
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: 0.19.0
48
+ version: 0.29.0
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: 0.19.0
55
+ version: 0.29.0
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: googleauth
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -332,7 +332,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
332
332
  - !ruby/object:Gem::Version
333
333
  version: '0'
334
334
  requirements: []
335
- rubygems_version: 3.3.14
335
+ rubygems_version: 3.4.19
336
336
  signing_key:
337
337
  specification_version: 4
338
338
  summary: API Client library for Google Cloud Storage