google-cloud-storage 1.35.0 → 1.54.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 +4 -4
- data/AUTHENTICATION.md +8 -26
- data/CHANGELOG.md +144 -0
- data/OVERVIEW.md +32 -0
- data/lib/google/cloud/storage/bucket/acl.rb +28 -26
- data/lib/google/cloud/storage/bucket/cors.rb +2 -2
- data/lib/google/cloud/storage/bucket/lifecycle.rb +88 -10
- data/lib/google/cloud/storage/bucket.rb +396 -11
- data/lib/google/cloud/storage/file/list.rb +10 -3
- data/lib/google/cloud/storage/file/signer_v2.rb +6 -5
- data/lib/google/cloud/storage/file/signer_v4.rb +6 -6
- data/lib/google/cloud/storage/file.rb +141 -10
- data/lib/google/cloud/storage/project.rb +88 -13
- data/lib/google/cloud/storage/service.rb +291 -227
- data/lib/google/cloud/storage/version.rb +1 -1
- data/lib/google/cloud/storage.rb +58 -14
- data/lib/google-cloud-storage.rb +47 -13
- metadata +44 -22
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 67fa1effce117003750f759eba79de92380616365652f2a19ba49b1986c75634
|
|
4
|
+
data.tar.gz: 9729e6dc51f15a9a5e2e0370771f980908f9d6284973503c9c4d4c1e561b8d84
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ec9022c921c0714ebf7f47131c745c113bb0480a34a376ca10055ccdee024821a518d1a87f742486118d7fb3e570beaeef5746f12676d5790e6ae697439dabd9
|
|
7
|
+
data.tar.gz: d5e57fd75d565a8328cf79ce42374883e4da7f875c7fd9571e928f9648c05578bee5743d68465819f3e5d488469d277749aecebd44810198fd1a1ca0cac6f3c3
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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,149 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
|
+
### 1.54.0 (2024-12-11)
|
|
4
|
+
|
|
5
|
+
#### Features
|
|
6
|
+
|
|
7
|
+
* Updated required Ruby version to 3.0 or later ([#27599](https://github.com/googleapis/google-cloud-ruby/issues/27599))
|
|
8
|
+
|
|
9
|
+
### 1.53.0 (2024-12-04)
|
|
10
|
+
|
|
11
|
+
#### Features
|
|
12
|
+
|
|
13
|
+
* add integration test for universe domain ([#27384](https://github.com/googleapis/google-cloud-ruby/issues/27384))
|
|
14
|
+
* fetch file and bucket details from url ([#27322](https://github.com/googleapis/google-cloud-ruby/issues/27322))
|
|
15
|
+
|
|
16
|
+
### 1.52.0 (2024-05-31)
|
|
17
|
+
|
|
18
|
+
#### Features
|
|
19
|
+
|
|
20
|
+
* support for hierarchical namespace (folders) ([#25967](https://github.com/googleapis/google-cloud-ruby/issues/25967))
|
|
21
|
+
|
|
22
|
+
### 1.51.0 (2024-04-25)
|
|
23
|
+
|
|
24
|
+
#### Features
|
|
25
|
+
|
|
26
|
+
* Respect custom endpoint for signed_url ([#25469](https://github.com/googleapis/google-cloud-ruby/issues/25469))
|
|
27
|
+
|
|
28
|
+
### 1.50.0 (2024-04-19)
|
|
29
|
+
|
|
30
|
+
#### Features
|
|
31
|
+
|
|
32
|
+
* Add support for soft deletion ([#25340](https://github.com/googleapis/google-cloud-ruby/issues/25340))
|
|
33
|
+
#### Bug Fixes
|
|
34
|
+
|
|
35
|
+
* Set configured univer_domain and endpoint when initializing through Service ([#25665](https://github.com/googleapis/google-cloud-ruby/issues/25665))
|
|
36
|
+
|
|
37
|
+
### 1.49.0 (2024-02-21)
|
|
38
|
+
|
|
39
|
+
#### Features
|
|
40
|
+
|
|
41
|
+
* Support of Managed Folders ([#24809](https://github.com/googleapis/google-cloud-ruby/issues/24809))
|
|
42
|
+
|
|
43
|
+
### 1.48.1 (2024-01-26)
|
|
44
|
+
|
|
45
|
+
#### Bug Fixes
|
|
46
|
+
|
|
47
|
+
* Raise an error on mismatching universe domain ([#24486](https://github.com/googleapis/google-cloud-ruby/issues/24486))
|
|
48
|
+
|
|
49
|
+
### 1.48.0 (2024-01-25)
|
|
50
|
+
|
|
51
|
+
#### Features
|
|
52
|
+
|
|
53
|
+
* Support for universe_domain ([#24449](https://github.com/googleapis/google-cloud-ruby/issues/24449))
|
|
54
|
+
|
|
55
|
+
### 1.47.0 (2024-01-09)
|
|
56
|
+
|
|
57
|
+
#### Features
|
|
58
|
+
|
|
59
|
+
* support for object lock / retention ([#23732](https://github.com/googleapis/google-cloud-ruby/issues/23732))
|
|
60
|
+
|
|
61
|
+
### 1.46.0 (2024-01-08)
|
|
62
|
+
|
|
63
|
+
#### Features
|
|
64
|
+
|
|
65
|
+
* support match_glob for Object.list
|
|
66
|
+
|
|
67
|
+
### 1.45.0 (2023-11-06)
|
|
68
|
+
|
|
69
|
+
#### Features
|
|
70
|
+
|
|
71
|
+
* added autoclass v2.1 features ([#23483](https://github.com/googleapis/google-cloud-ruby/issues/23483))
|
|
72
|
+
|
|
73
|
+
### 1.44.0 (2022-11-02)
|
|
74
|
+
|
|
75
|
+
#### Features
|
|
76
|
+
|
|
77
|
+
* support autoclass
|
|
78
|
+
|
|
79
|
+
### 1.43.0 (2022-09-30)
|
|
80
|
+
|
|
81
|
+
#### Features
|
|
82
|
+
|
|
83
|
+
* Add retry conformance test ([#18230](https://github.com/googleapis/google-cloud-ruby/issues/18230))
|
|
84
|
+
|
|
85
|
+
### 1.42.0 (2022-09-21)
|
|
86
|
+
|
|
87
|
+
#### Features
|
|
88
|
+
|
|
89
|
+
* send invocation_id header in all requests ([#19161](https://github.com/googleapis/google-cloud-ruby/issues/19161))
|
|
90
|
+
|
|
91
|
+
### 1.41.0 (2022-09-16)
|
|
92
|
+
|
|
93
|
+
#### Features
|
|
94
|
+
|
|
95
|
+
* add retry support for non-idempotent operations ([#19134](https://github.com/googleapis/google-cloud-ruby/issues/19134))
|
|
96
|
+
#### Bug Fixes
|
|
97
|
+
|
|
98
|
+
* Correct options checks in retry operations ([#19135](https://github.com/googleapis/google-cloud-ruby/issues/19135))
|
|
99
|
+
* Update api for bucket update ([#19110](https://github.com/googleapis/google-cloud-ruby/issues/19110))
|
|
100
|
+
|
|
101
|
+
### 1.40.0 (2022-09-13)
|
|
102
|
+
|
|
103
|
+
#### Features
|
|
104
|
+
|
|
105
|
+
* Update all patch bucket helper methods to accept preconditions ([#19117](https://github.com/googleapis/google-cloud-ruby/issues/19117))
|
|
106
|
+
|
|
107
|
+
### 1.39.0 (2022-08-24)
|
|
108
|
+
|
|
109
|
+
#### Features
|
|
110
|
+
|
|
111
|
+
* add support for conditional idempotent operations ([#18834](https://github.com/googleapis/google-cloud-ruby/issues/18834))
|
|
112
|
+
|
|
113
|
+
### 1.38.0 (2022-07-31)
|
|
114
|
+
|
|
115
|
+
#### Features
|
|
116
|
+
|
|
117
|
+
* Add support for dual region gcs buckets ([#18862](https://github.com/googleapis/google-cloud-ruby/issues/18862))
|
|
118
|
+
|
|
119
|
+
### 1.37.0 (2022-06-30)
|
|
120
|
+
|
|
121
|
+
#### Features
|
|
122
|
+
|
|
123
|
+
* support OLM Prefix/Suffix ([#18190](https://github.com/googleapis/google-cloud-ruby/issues/18190))
|
|
124
|
+
* allow retry options to be configurable on client initialization ([#18332](https://github.com/googleapis/google-cloud-ruby/issues/18332))
|
|
125
|
+
#### Bug Fixes
|
|
126
|
+
|
|
127
|
+
* update object path parsing to handle hashes in them
|
|
128
|
+
|
|
129
|
+
### 1.36.2 (2022-04-20)
|
|
130
|
+
|
|
131
|
+
#### Documentation
|
|
132
|
+
|
|
133
|
+
* Document support for dual region buckets
|
|
134
|
+
|
|
135
|
+
### 1.36.1 / 2022-02-08
|
|
136
|
+
|
|
137
|
+
#### Documentation
|
|
138
|
+
|
|
139
|
+
* Update the RPO sample output. ([#17277](https://www.github.com/googleapis/google-cloud-ruby/issues/17277))
|
|
140
|
+
|
|
141
|
+
### 1.36.0 / 2022-01-12
|
|
142
|
+
|
|
143
|
+
#### Features
|
|
144
|
+
|
|
145
|
+
* add support for RPO (turbo replication). ([#14407](https://www.github.com/googleapis/google-cloud-ruby/issues/14407))
|
|
146
|
+
|
|
3
147
|
### 1.35.0 / 2021-12-08
|
|
4
148
|
|
|
5
149
|
#### Features
|
data/OVERVIEW.md
CHANGED
|
@@ -563,6 +563,38 @@ require "google/cloud/storage"
|
|
|
563
563
|
storage = Google::Cloud::Storage.new retries: 10, timeout: 120
|
|
564
564
|
```
|
|
565
565
|
|
|
566
|
+
The library by default retries all API requests which are always idempotent on a
|
|
567
|
+
"transient" error.
|
|
568
|
+
|
|
569
|
+
For API requests which are idempotent only if the some conditions are satisfied
|
|
570
|
+
(For ex. a file has the same "generation"), the library retries only if the
|
|
571
|
+
condition is specified.
|
|
572
|
+
|
|
573
|
+
Rather than using this default behaviour, you may choose to disable the retries
|
|
574
|
+
on your own.
|
|
575
|
+
|
|
576
|
+
You can pass `retries` as `0` to disable retries for all operations regardless
|
|
577
|
+
of their idempotencies.
|
|
578
|
+
|
|
579
|
+
```ruby
|
|
580
|
+
require "google/cloud/storage"
|
|
581
|
+
|
|
582
|
+
storage = Google::Cloud::Storage.new retries: 0
|
|
583
|
+
```
|
|
584
|
+
|
|
585
|
+
You can also disable retries for a particular operation by passing `retries` as
|
|
586
|
+
`0` in the `options` field.
|
|
587
|
+
|
|
588
|
+
```ruby
|
|
589
|
+
require "google/cloud/storage"
|
|
590
|
+
|
|
591
|
+
storage = Google::Cloud::Storage.new
|
|
592
|
+
service = storage.service
|
|
593
|
+
service.get_bucket bucket_name, options: {retries: 0}
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
For those API requests which are never idempotent, the library passes retries=0 by default, suppressing any retries.
|
|
597
|
+
|
|
566
598
|
See the [Storage status and error
|
|
567
599
|
codes](https://cloud.google.com/storage/docs/json_api/v1/status-codes)
|
|
568
600
|
for a list of error conditions.
|
|
@@ -349,8 +349,8 @@ module Google
|
|
|
349
349
|
#
|
|
350
350
|
# bucket.acl.auth!
|
|
351
351
|
#
|
|
352
|
-
def auth!
|
|
353
|
-
update_predefined_acl! "authenticatedRead"
|
|
352
|
+
def auth! if_metageneration_match: nil
|
|
353
|
+
update_predefined_acl! "authenticatedRead", if_metageneration_match: if_metageneration_match
|
|
354
354
|
end
|
|
355
355
|
alias authenticatedRead! auth!
|
|
356
356
|
alias auth_read! auth!
|
|
@@ -370,8 +370,8 @@ module Google
|
|
|
370
370
|
#
|
|
371
371
|
# bucket.acl.private!
|
|
372
372
|
#
|
|
373
|
-
def private!
|
|
374
|
-
update_predefined_acl! "private"
|
|
373
|
+
def private! if_metageneration_match: nil
|
|
374
|
+
update_predefined_acl! "private", if_metageneration_match: if_metageneration_match
|
|
375
375
|
end
|
|
376
376
|
|
|
377
377
|
##
|
|
@@ -387,8 +387,8 @@ module Google
|
|
|
387
387
|
#
|
|
388
388
|
# bucket.acl.project_private!
|
|
389
389
|
#
|
|
390
|
-
def project_private!
|
|
391
|
-
update_predefined_acl! "projectPrivate"
|
|
390
|
+
def project_private! if_metageneration_match: nil
|
|
391
|
+
update_predefined_acl! "projectPrivate", if_metageneration_match: if_metageneration_match
|
|
392
392
|
end
|
|
393
393
|
alias projectPrivate! project_private!
|
|
394
394
|
|
|
@@ -405,8 +405,8 @@ module Google
|
|
|
405
405
|
#
|
|
406
406
|
# bucket.acl.public!
|
|
407
407
|
#
|
|
408
|
-
def public!
|
|
409
|
-
update_predefined_acl! "publicRead"
|
|
408
|
+
def public! if_metageneration_match: nil
|
|
409
|
+
update_predefined_acl! "publicRead", if_metageneration_match: if_metageneration_match
|
|
410
410
|
end
|
|
411
411
|
alias publicRead! public!
|
|
412
412
|
alias public_read! public!
|
|
@@ -423,8 +423,8 @@ module Google
|
|
|
423
423
|
#
|
|
424
424
|
# bucket.acl.public_write!
|
|
425
425
|
#
|
|
426
|
-
def public_write!
|
|
427
|
-
update_predefined_acl! "publicReadWrite"
|
|
426
|
+
def public_write! if_metageneration_match: nil
|
|
427
|
+
update_predefined_acl! "publicReadWrite", if_metageneration_match: if_metageneration_match
|
|
428
428
|
end
|
|
429
429
|
alias publicReadWrite! public_write!
|
|
430
430
|
|
|
@@ -437,9 +437,10 @@ module Google
|
|
|
437
437
|
self
|
|
438
438
|
end
|
|
439
439
|
|
|
440
|
-
def update_predefined_acl! acl_role
|
|
440
|
+
def update_predefined_acl! acl_role, if_metageneration_match: nil
|
|
441
441
|
@service.patch_bucket @bucket, predefined_acl: acl_role,
|
|
442
|
-
user_project: user_project
|
|
442
|
+
user_project: user_project,
|
|
443
|
+
if_metageneration_match: if_metageneration_match
|
|
443
444
|
clear!
|
|
444
445
|
end
|
|
445
446
|
|
|
@@ -714,8 +715,8 @@ module Google
|
|
|
714
715
|
#
|
|
715
716
|
# bucket.default_acl.auth!
|
|
716
717
|
#
|
|
717
|
-
def auth!
|
|
718
|
-
update_predefined_default_acl! "authenticatedRead"
|
|
718
|
+
def auth! if_metageneration_match: nil
|
|
719
|
+
update_predefined_default_acl! "authenticatedRead", if_metageneration_match: if_metageneration_match
|
|
719
720
|
end
|
|
720
721
|
alias authenticatedRead! auth!
|
|
721
722
|
alias auth_read! auth!
|
|
@@ -735,8 +736,8 @@ module Google
|
|
|
735
736
|
#
|
|
736
737
|
# bucket.default_acl.owner_full!
|
|
737
738
|
#
|
|
738
|
-
def owner_full!
|
|
739
|
-
update_predefined_default_acl! "bucketOwnerFullControl"
|
|
739
|
+
def owner_full! if_metageneration_match: nil
|
|
740
|
+
update_predefined_default_acl! "bucketOwnerFullControl", if_metageneration_match: if_metageneration_match
|
|
740
741
|
end
|
|
741
742
|
alias bucketOwnerFullControl! owner_full!
|
|
742
743
|
|
|
@@ -753,8 +754,8 @@ module Google
|
|
|
753
754
|
#
|
|
754
755
|
# bucket.default_acl.owner_read!
|
|
755
756
|
#
|
|
756
|
-
def owner_read!
|
|
757
|
-
update_predefined_default_acl! "bucketOwnerRead"
|
|
757
|
+
def owner_read! if_metageneration_match: nil
|
|
758
|
+
update_predefined_default_acl! "bucketOwnerRead", if_metageneration_match: if_metageneration_match
|
|
758
759
|
end
|
|
759
760
|
alias bucketOwnerRead! owner_read!
|
|
760
761
|
|
|
@@ -771,8 +772,8 @@ module Google
|
|
|
771
772
|
#
|
|
772
773
|
# bucket.default_acl.private!
|
|
773
774
|
#
|
|
774
|
-
def private!
|
|
775
|
-
update_predefined_default_acl! "private"
|
|
775
|
+
def private! if_metageneration_match: nil
|
|
776
|
+
update_predefined_default_acl! "private", if_metageneration_match: if_metageneration_match
|
|
776
777
|
end
|
|
777
778
|
|
|
778
779
|
##
|
|
@@ -788,8 +789,8 @@ module Google
|
|
|
788
789
|
#
|
|
789
790
|
# bucket.default_acl.project_private!
|
|
790
791
|
#
|
|
791
|
-
def project_private!
|
|
792
|
-
update_predefined_default_acl! "projectPrivate"
|
|
792
|
+
def project_private! if_metageneration_match: nil
|
|
793
|
+
update_predefined_default_acl! "projectPrivate", if_metageneration_match: if_metageneration_match
|
|
793
794
|
end
|
|
794
795
|
alias projectPrivate! project_private!
|
|
795
796
|
|
|
@@ -806,8 +807,8 @@ module Google
|
|
|
806
807
|
#
|
|
807
808
|
# bucket.default_acl.public!
|
|
808
809
|
#
|
|
809
|
-
def public!
|
|
810
|
-
update_predefined_default_acl! "publicRead"
|
|
810
|
+
def public! if_metageneration_match: nil
|
|
811
|
+
update_predefined_default_acl! "publicRead", if_metageneration_match: if_metageneration_match
|
|
811
812
|
end
|
|
812
813
|
alias publicRead! public!
|
|
813
814
|
alias public_read! public!
|
|
@@ -820,9 +821,10 @@ module Google
|
|
|
820
821
|
self
|
|
821
822
|
end
|
|
822
823
|
|
|
823
|
-
def update_predefined_default_acl! acl_role
|
|
824
|
+
def update_predefined_default_acl! acl_role, if_metageneration_match: nil
|
|
824
825
|
@service.patch_bucket @bucket, predefined_default_acl: acl_role,
|
|
825
|
-
user_project: user_project
|
|
826
|
+
user_project: user_project,
|
|
827
|
+
if_metageneration_match: if_metageneration_match
|
|
826
828
|
clear!
|
|
827
829
|
end
|
|
828
830
|
|
|
@@ -182,7 +182,7 @@ module Google
|
|
|
182
182
|
@origin = Array(origin)
|
|
183
183
|
@methods = Array(methods)
|
|
184
184
|
@headers = Array(headers)
|
|
185
|
-
@max_age =
|
|
185
|
+
@max_age = max_age || 1800
|
|
186
186
|
end
|
|
187
187
|
|
|
188
188
|
# @private
|
|
@@ -195,7 +195,7 @@ module Google
|
|
|
195
195
|
|
|
196
196
|
# @private
|
|
197
197
|
def self.from_gapi gapi
|
|
198
|
-
new gapi.origin.dup, gapi.http_method.dup,
|
|
198
|
+
new gapi.origin.dup, gapi.http_method.dup,
|
|
199
199
|
headers: gapi.response_header.dup,
|
|
200
200
|
max_age: gapi.max_age_seconds
|
|
201
201
|
end
|
|
@@ -53,6 +53,8 @@ module Google
|
|
|
53
53
|
# rule.storage_class #=> "COLDLINE"
|
|
54
54
|
# rule.age #=> 10
|
|
55
55
|
# rule.matches_storage_class #=> ["STANDARD", "NEARLINE"]
|
|
56
|
+
# rule.matches_prefix #=> ["myprefix/foo"]
|
|
57
|
+
# rule.matches_suffix #=> [".jpg", ".png"]
|
|
56
58
|
#
|
|
57
59
|
# @example Updating the bucket's lifecycle management rules in a block.
|
|
58
60
|
# require "google/cloud/storage"
|
|
@@ -138,6 +140,12 @@ module Google
|
|
|
138
140
|
# files. If the value is N, this condition is satisfied when there
|
|
139
141
|
# are at least N versions (including the live version) newer than
|
|
140
142
|
# this version of the file.
|
|
143
|
+
# @param [Array<String,Symbol>] matches_prefix
|
|
144
|
+
# Files having their name with the specified list of prefixs will be matched.
|
|
145
|
+
# Arguments will be converted from symbols to strings.
|
|
146
|
+
# @param [Array<String,Symbol>] matches_suffix
|
|
147
|
+
# Files having their name with the specified list of suffixes will be matched.
|
|
148
|
+
# Arguments will be converted from symbols to strings.
|
|
141
149
|
#
|
|
142
150
|
# @example
|
|
143
151
|
# require "google/cloud/storage"
|
|
@@ -157,7 +165,9 @@ module Google
|
|
|
157
165
|
is_live: nil,
|
|
158
166
|
matches_storage_class: nil,
|
|
159
167
|
noncurrent_time_before: nil,
|
|
160
|
-
num_newer_versions: nil
|
|
168
|
+
num_newer_versions: nil,
|
|
169
|
+
matches_prefix: nil,
|
|
170
|
+
matches_suffix: nil
|
|
161
171
|
push Rule.new(
|
|
162
172
|
"SetStorageClass",
|
|
163
173
|
storage_class: storage_class_for(storage_class),
|
|
@@ -169,12 +179,14 @@ module Google
|
|
|
169
179
|
is_live: is_live,
|
|
170
180
|
matches_storage_class: storage_class_for(matches_storage_class),
|
|
171
181
|
noncurrent_time_before: noncurrent_time_before,
|
|
172
|
-
num_newer_versions: num_newer_versions
|
|
182
|
+
num_newer_versions: num_newer_versions,
|
|
183
|
+
matches_prefix: Array(matches_prefix),
|
|
184
|
+
matches_suffix: Array(matches_suffix)
|
|
173
185
|
)
|
|
174
186
|
end
|
|
175
187
|
|
|
176
188
|
##
|
|
177
|
-
# Adds a
|
|
189
|
+
# Adds a Delete lifecycle rule to the Object Lifecycle
|
|
178
190
|
# Management rules for a bucket.
|
|
179
191
|
#
|
|
180
192
|
# @see https://cloud.google.com/storage/docs/lifecycle Object
|
|
@@ -221,6 +233,12 @@ module Google
|
|
|
221
233
|
# files. If the value is N, this condition is satisfied when there
|
|
222
234
|
# are at least N versions (including the live version) newer than
|
|
223
235
|
# this version of the file.
|
|
236
|
+
# @param [Array<String,Symbol>] matches_prefix
|
|
237
|
+
# Files having their name with the specified list of prefixs will be matched.
|
|
238
|
+
# Arguments will be converted from symbols to strings.
|
|
239
|
+
# @param [Array<String,Symbol>] matches_suffix
|
|
240
|
+
# Files having their name with the specified list of suffixes will be matched.
|
|
241
|
+
# Arguments will be converted from symbols to strings.
|
|
224
242
|
#
|
|
225
243
|
# @example
|
|
226
244
|
# require "google/cloud/storage"
|
|
@@ -239,7 +257,9 @@ module Google
|
|
|
239
257
|
is_live: nil,
|
|
240
258
|
matches_storage_class: nil,
|
|
241
259
|
noncurrent_time_before: nil,
|
|
242
|
-
num_newer_versions: nil
|
|
260
|
+
num_newer_versions: nil,
|
|
261
|
+
matches_prefix: nil,
|
|
262
|
+
matches_suffix: nil
|
|
243
263
|
push Rule.new(
|
|
244
264
|
"Delete",
|
|
245
265
|
age: age,
|
|
@@ -250,7 +270,49 @@ module Google
|
|
|
250
270
|
is_live: is_live,
|
|
251
271
|
matches_storage_class: storage_class_for(matches_storage_class),
|
|
252
272
|
noncurrent_time_before: noncurrent_time_before,
|
|
253
|
-
num_newer_versions: num_newer_versions
|
|
273
|
+
num_newer_versions: num_newer_versions,
|
|
274
|
+
matches_prefix: Array(matches_prefix),
|
|
275
|
+
matches_suffix: Array(matches_suffix)
|
|
276
|
+
)
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
##
|
|
280
|
+
# Adds a AbortIncompleteMultipartUpload lifecycle rule to the Object Lifecycle
|
|
281
|
+
# Management rules for a bucket.
|
|
282
|
+
#
|
|
283
|
+
# @see https://cloud.google.com/storage/docs/lifecycle Object
|
|
284
|
+
# Lifecycle Management
|
|
285
|
+
# @see https://cloud.google.com/storage/docs/managing-lifecycles
|
|
286
|
+
# Managing Object Lifecycles
|
|
287
|
+
#
|
|
288
|
+
# @param [Integer] age The age of a file (in days). This condition is
|
|
289
|
+
# satisfied when a file reaches the specified age.
|
|
290
|
+
# @param [Array<String,Symbol>] matches_prefix
|
|
291
|
+
# Files having their name with the specified list of prefixs will be matched.
|
|
292
|
+
# Arguments will be converted from symbols to strings.
|
|
293
|
+
# @param [Array<String,Symbol>] matches_suffix
|
|
294
|
+
# Files having their name with the specified list of suffixes will be matched.
|
|
295
|
+
# Arguments will be converted from symbols to strings.
|
|
296
|
+
#
|
|
297
|
+
# @example
|
|
298
|
+
# require "google/cloud/storage"
|
|
299
|
+
#
|
|
300
|
+
# storage = Google::Cloud::Storage.new
|
|
301
|
+
#
|
|
302
|
+
# bucket = storage.create_bucket "my-bucket" do |b|
|
|
303
|
+
# b.lifecycle.add_abort_incomplete_multipart_upload_rule age: 10,
|
|
304
|
+
# matches_prefix: ["images/"],
|
|
305
|
+
# matches_suffix: [".pdf"]
|
|
306
|
+
# end
|
|
307
|
+
#
|
|
308
|
+
def add_abort_incomplete_multipart_upload_rule age: nil,
|
|
309
|
+
matches_prefix: nil,
|
|
310
|
+
matches_suffix: nil
|
|
311
|
+
push Rule.new(
|
|
312
|
+
"AbortIncompleteMultipartUpload",
|
|
313
|
+
age: age,
|
|
314
|
+
matches_prefix: Array(matches_prefix),
|
|
315
|
+
matches_suffix: Array(matches_suffix)
|
|
254
316
|
)
|
|
255
317
|
end
|
|
256
318
|
|
|
@@ -346,6 +408,8 @@ module Google
|
|
|
346
408
|
# rule.storage_class #=> "COLDLINE"
|
|
347
409
|
# rule.age #=> 10
|
|
348
410
|
# rule.matches_storage_class #=> ["STANDARD", "NEARLINE"]
|
|
411
|
+
# rule.matches_prefix #=> ["myprefix/foo"]
|
|
412
|
+
# rule.matches_suffix #=> [".jpg", ".png"]
|
|
349
413
|
#
|
|
350
414
|
# @example Updating the bucket's lifecycle rules in a block.
|
|
351
415
|
# require "google/cloud/storage"
|
|
@@ -382,6 +446,8 @@ module Google
|
|
|
382
446
|
attr_accessor :matches_storage_class
|
|
383
447
|
attr_accessor :noncurrent_time_before
|
|
384
448
|
attr_accessor :num_newer_versions
|
|
449
|
+
attr_accessor :matches_prefix
|
|
450
|
+
attr_accessor :matches_suffix
|
|
385
451
|
|
|
386
452
|
# @private
|
|
387
453
|
def initialize action,
|
|
@@ -394,7 +460,9 @@ module Google
|
|
|
394
460
|
is_live: nil,
|
|
395
461
|
matches_storage_class: nil,
|
|
396
462
|
noncurrent_time_before: nil,
|
|
397
|
-
num_newer_versions: nil
|
|
463
|
+
num_newer_versions: nil,
|
|
464
|
+
matches_prefix: nil,
|
|
465
|
+
matches_suffix: nil
|
|
398
466
|
@action = action
|
|
399
467
|
@storage_class = storage_class
|
|
400
468
|
@age = age
|
|
@@ -406,6 +474,8 @@ module Google
|
|
|
406
474
|
@matches_storage_class = Array(matches_storage_class)
|
|
407
475
|
@noncurrent_time_before = noncurrent_time_before
|
|
408
476
|
@num_newer_versions = num_newer_versions
|
|
477
|
+
@matches_prefix = Array(matches_prefix)
|
|
478
|
+
@matches_suffix = Array(matches_suffix)
|
|
409
479
|
end
|
|
410
480
|
|
|
411
481
|
# @private
|
|
@@ -420,7 +490,9 @@ module Google
|
|
|
420
490
|
is_live,
|
|
421
491
|
matches_storage_class,
|
|
422
492
|
noncurrent_time_before,
|
|
423
|
-
num_newer_versions
|
|
493
|
+
num_newer_versions,
|
|
494
|
+
matches_prefix,
|
|
495
|
+
matches_suffix
|
|
424
496
|
)
|
|
425
497
|
Google::Apis::StorageV1::Bucket::Lifecycle::Rule.new(
|
|
426
498
|
action: action_gapi(action, storage_class),
|
|
@@ -445,7 +517,9 @@ module Google
|
|
|
445
517
|
is_live,
|
|
446
518
|
matches_storage_class,
|
|
447
519
|
noncurrent_time_before,
|
|
448
|
-
num_newer_versions
|
|
520
|
+
num_newer_versions,
|
|
521
|
+
matches_prefix,
|
|
522
|
+
matches_suffix
|
|
449
523
|
Google::Apis::StorageV1::Bucket::Lifecycle::Rule::Condition.new(
|
|
450
524
|
age: age,
|
|
451
525
|
created_before: created_before,
|
|
@@ -455,7 +529,9 @@ module Google
|
|
|
455
529
|
is_live: is_live,
|
|
456
530
|
matches_storage_class: Array(matches_storage_class),
|
|
457
531
|
noncurrent_time_before: noncurrent_time_before,
|
|
458
|
-
num_newer_versions: num_newer_versions
|
|
532
|
+
num_newer_versions: num_newer_versions,
|
|
533
|
+
matches_prefix: Array(matches_prefix),
|
|
534
|
+
matches_suffix: Array(matches_suffix)
|
|
459
535
|
)
|
|
460
536
|
end
|
|
461
537
|
|
|
@@ -475,7 +551,9 @@ module Google
|
|
|
475
551
|
is_live: c.is_live,
|
|
476
552
|
matches_storage_class: c.matches_storage_class,
|
|
477
553
|
noncurrent_time_before: c.noncurrent_time_before,
|
|
478
|
-
num_newer_versions: c.num_newer_versions
|
|
554
|
+
num_newer_versions: c.num_newer_versions,
|
|
555
|
+
matches_prefix: c.matches_prefix,
|
|
556
|
+
matches_suffix: c.matches_suffix
|
|
479
557
|
)
|
|
480
558
|
end
|
|
481
559
|
|