google-cloud-storage 1.3.0 → 1.4.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/README.md +0 -2
- data/lib/google/cloud/storage/bucket.rb +82 -15
- data/lib/google/cloud/storage/file.rb +162 -10
- data/lib/google/cloud/storage/file/list.rb +1 -1
- data/lib/google/cloud/storage/project.rb +15 -7
- data/lib/google/cloud/storage/service.rb +3 -1
- data/lib/google/cloud/storage/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 68663d7f63e76435070cbcd4748022693d2561a5
|
4
|
+
data.tar.gz: cb6ecfdfaadeb41ed569d08ca9c069edf67c0ea4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1382c121c18b2cc7fa8a916895bec8c0a2b7c40a99b4fea1a54edc3562ba53b8e9f9538ea3e613f20c39572bdcc21cb2190d7a26da82240fe966901b24bf8ebb
|
7
|
+
data.tar.gz: 78b666563914f310968e53d4701c78781ebedae1977e1f51f6f3874ee69d23e9dfcf0b235178d0e13a0437c22fd41a12e9210577e1aa23d0ca2937b4babb0500
|
data/README.md
CHANGED
@@ -48,8 +48,6 @@ This library is supported on Ruby 2.0+.
|
|
48
48
|
|
49
49
|
This library follows [Semantic Versioning](http://semver.org/).
|
50
50
|
|
51
|
-
It is currently in major version zero (0.y.z), which means that anything may change at any time and the public API should not be considered stable.
|
52
|
-
|
53
51
|
## Contributing
|
54
52
|
|
55
53
|
Contributions to this library are always welcome and highly encouraged.
|
@@ -234,12 +234,25 @@ module Google
|
|
234
234
|
##
|
235
235
|
# The bucket's storage class. This defines how objects in the bucket are
|
236
236
|
# stored and determines the SLA and the cost of storage. Values include
|
237
|
-
# `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`,
|
238
|
-
#
|
237
|
+
# `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`, and
|
238
|
+
# `DURABLE_REDUCED_AVAILABILITY`.
|
239
239
|
def storage_class
|
240
240
|
@gapi.storage_class
|
241
241
|
end
|
242
242
|
|
243
|
+
##
|
244
|
+
# Updates the bucket's storage class. This defines how objects in the
|
245
|
+
# bucket are stored and determines the SLA and the cost of storage.
|
246
|
+
# Accepted values include `:multi_regional`, `:regional`, `:nearline`,
|
247
|
+
# and `:coldline`, as well as the equivalent strings returned by
|
248
|
+
# {Bucket#storage_class}. For more information, see [Storage
|
249
|
+
# Classes](https://cloud.google.com/storage/docs/storage-classes).
|
250
|
+
# @param [Symbol, String] new_storage_class Storage class of the bucket.
|
251
|
+
def storage_class= new_storage_class
|
252
|
+
@gapi.storage_class = storage_class_for(new_storage_class)
|
253
|
+
patch_gapi! :storage_class
|
254
|
+
end
|
255
|
+
|
243
256
|
##
|
244
257
|
# Whether [Object
|
245
258
|
# Versioning](https://cloud.google.com/storage/docs/object-versioning)
|
@@ -514,9 +527,13 @@ module Google
|
|
514
527
|
# @param [String] path Name (path) of the file.
|
515
528
|
# @param [Integer] generation When present, selects a specific revision
|
516
529
|
# of this object. Default is the latest version.
|
530
|
+
# @param [Boolean] skip_lookup Optionally create a Bucket object
|
531
|
+
# without verifying the bucket resource exists on the Storage service.
|
532
|
+
# Calls made on this object will raise errors if the bucket resource
|
533
|
+
# does not exist. Default is `false`.
|
517
534
|
# @param [String] encryption_key Optional. The customer-supplied,
|
518
535
|
# AES-256 encryption key used to encrypt the file, if one was provided
|
519
|
-
# to {#create_file}.
|
536
|
+
# to {#create_file}. (Not used if `skip_lookup` is also set.)
|
520
537
|
#
|
521
538
|
# @return [Google::Cloud::Storage::File, nil] Returns nil if file does
|
522
539
|
# not exist
|
@@ -531,8 +548,13 @@ module Google
|
|
531
548
|
# file = bucket.file "path/to/my-file.ext"
|
532
549
|
# puts file.name
|
533
550
|
#
|
534
|
-
def file path, generation: nil, encryption_key: nil
|
551
|
+
def file path, generation: nil, skip_lookup: nil, encryption_key: nil
|
535
552
|
ensure_service!
|
553
|
+
if skip_lookup
|
554
|
+
return File.new_lazy name, path, service,
|
555
|
+
generation: generation,
|
556
|
+
user_project: user_project
|
557
|
+
end
|
536
558
|
gapi = service.get_file name, path, generation: generation,
|
537
559
|
key: encryption_key,
|
538
560
|
user_project: user_project
|
@@ -615,12 +637,11 @@ module Google
|
|
615
637
|
# file as "x-goog-meta-" response headers.
|
616
638
|
# @param [Symbol, String] storage_class Storage class of the file.
|
617
639
|
# Determines how the file is stored and determines the SLA and the
|
618
|
-
# cost of storage.
|
619
|
-
# `:
|
620
|
-
#
|
621
|
-
#
|
622
|
-
#
|
623
|
-
# [Per-Object Storage
|
640
|
+
# cost of storage. Accepted values include `:multi_regional`,
|
641
|
+
# `:regional`, `:nearline`, and `:coldline`, as well as the equivalent
|
642
|
+
# strings returned by {#storage_class}. For more information, see
|
643
|
+
# [Storage Classes](https://cloud.google.com/storage/docs/storage-classes)
|
644
|
+
# and [Per-Object Storage
|
624
645
|
# Class](https://cloud.google.com/storage/docs/per-object-storage-class).
|
625
646
|
# The default value is the default storage class for the bucket.
|
626
647
|
# @param [String] encryption_key Optional. A customer-supplied, AES-256
|
@@ -1120,17 +1141,53 @@ module Google
|
|
1120
1141
|
# Reloads the bucket with current data from the Storage service.
|
1121
1142
|
def reload!
|
1122
1143
|
ensure_service!
|
1123
|
-
@gapi = service.get_bucket name
|
1144
|
+
@gapi = service.get_bucket name, user_project: user_project
|
1145
|
+
# If NotFound then lazy will never be unset
|
1146
|
+
@lazy = nil
|
1147
|
+
self
|
1124
1148
|
end
|
1125
1149
|
alias_method :refresh!, :reload!
|
1126
1150
|
|
1151
|
+
##
|
1152
|
+
# Determines whether the bucket exists in the Storage service.
|
1153
|
+
def exists?
|
1154
|
+
# Always true if we have a grpc object
|
1155
|
+
return true unless lazy?
|
1156
|
+
# If we have a value, return it
|
1157
|
+
return @exists unless @exists.nil?
|
1158
|
+
ensure_gapi!
|
1159
|
+
@exists = true
|
1160
|
+
rescue Google::Cloud::NotFoundError
|
1161
|
+
@exists = false
|
1162
|
+
end
|
1163
|
+
|
1164
|
+
##
|
1165
|
+
# @private
|
1166
|
+
# Determines whether the bucket was created without retrieving the
|
1167
|
+
# resource record from the API.
|
1168
|
+
def lazy?
|
1169
|
+
@lazy
|
1170
|
+
end
|
1171
|
+
|
1127
1172
|
##
|
1128
1173
|
# @private New Bucket from a Google API Client object.
|
1129
1174
|
def self.from_gapi gapi, service, user_project: nil
|
1130
|
-
new.tap do |
|
1131
|
-
|
1132
|
-
|
1133
|
-
|
1175
|
+
new.tap do |b|
|
1176
|
+
b.gapi = gapi
|
1177
|
+
b.service = service
|
1178
|
+
b.user_project = user_project
|
1179
|
+
end
|
1180
|
+
end
|
1181
|
+
|
1182
|
+
##
|
1183
|
+
# @private New lazy Bucket object without making an HTTP request.
|
1184
|
+
def self.new_lazy name, service, user_project: nil
|
1185
|
+
# TODO: raise if name is nil?
|
1186
|
+
new.tap do |b|
|
1187
|
+
b.gapi.name = name
|
1188
|
+
b.service = service
|
1189
|
+
b.user_project = user_project
|
1190
|
+
b.instance_variable_set :@lazy, true
|
1134
1191
|
end
|
1135
1192
|
end
|
1136
1193
|
|
@@ -1142,6 +1199,14 @@ module Google
|
|
1142
1199
|
fail "Must have active connection" unless service
|
1143
1200
|
end
|
1144
1201
|
|
1202
|
+
##
|
1203
|
+
# Ensures the Google::Apis::StorageV1::Bucket object exists.
|
1204
|
+
def ensure_gapi!
|
1205
|
+
ensure_service!
|
1206
|
+
return unless lazy?
|
1207
|
+
reload!
|
1208
|
+
end
|
1209
|
+
|
1145
1210
|
def patch_gapi! *attributes
|
1146
1211
|
attributes.flatten!
|
1147
1212
|
return if attributes.empty?
|
@@ -1152,6 +1217,8 @@ module Google
|
|
1152
1217
|
patch_gapi = Google::Apis::StorageV1::Bucket.new patch_args
|
1153
1218
|
@gapi = service.patch_bucket name, patch_gapi,
|
1154
1219
|
user_project: user_project
|
1220
|
+
@lazy = nil
|
1221
|
+
self
|
1155
1222
|
end
|
1156
1223
|
|
1157
1224
|
##
|
@@ -314,10 +314,10 @@ module Google
|
|
314
314
|
|
315
315
|
##
|
316
316
|
# Updates how the file is stored and determines the SLA and the cost of
|
317
|
-
# storage.
|
318
|
-
# `:
|
319
|
-
#
|
320
|
-
#
|
317
|
+
# storage. Accepted values include `:multi_regional`, `:regional`,
|
318
|
+
# `:nearline`, and `:coldline`, as well as the equivalent strings
|
319
|
+
# returned by {File#storage_class} or {Bucket#storage_class}. For more
|
320
|
+
# information, see [Storage
|
321
321
|
# Classes](https://cloud.google.com/storage/docs/storage-classes) and
|
322
322
|
# [Per-Object Storage
|
323
323
|
# Class](https://cloud.google.com/storage/docs/per-object-storage-class).
|
@@ -329,6 +329,45 @@ module Google
|
|
329
329
|
update_gapi! :storage_class
|
330
330
|
end
|
331
331
|
|
332
|
+
##
|
333
|
+
# Retrieves a list of versioned files for the current object.
|
334
|
+
#
|
335
|
+
# Useful for listing archived versions of the file, restoring the live
|
336
|
+
# version of the file to an older version, or deleting an archived
|
337
|
+
# version. You can turn versioning on or off for a bucket at any time
|
338
|
+
# with {Bucket#versioning=}. Turning versioning off leaves existing file
|
339
|
+
# versions in place and causes the bucket to stop accumulating new
|
340
|
+
# archived object versions. (See {Bucket#versioning} and
|
341
|
+
# {File#generation})
|
342
|
+
#
|
343
|
+
# @see https://cloud.google.com/storage/docs/object-versioning Object
|
344
|
+
# Versioning
|
345
|
+
#
|
346
|
+
# @return [Array<Google::Cloud::Storage::File>] (See
|
347
|
+
# {Google::Cloud::Storage::File::List})
|
348
|
+
#
|
349
|
+
# @example
|
350
|
+
# require "google/cloud/storage"
|
351
|
+
#
|
352
|
+
# storage = Google::Cloud::Storage.new
|
353
|
+
#
|
354
|
+
# bucket = storage.bucket "my-bucket"
|
355
|
+
#
|
356
|
+
# file = bucket.file "path/to/my-file.ext"
|
357
|
+
# file.generation #=> 1234567890
|
358
|
+
# file.generations.each do |versioned_file|
|
359
|
+
# versioned_file.generation
|
360
|
+
# end
|
361
|
+
#
|
362
|
+
def generations
|
363
|
+
ensure_service!
|
364
|
+
gapi = service.list_files bucket, prefix: name,
|
365
|
+
versions: true,
|
366
|
+
user_project: user_project
|
367
|
+
File::List.from_gapi gapi, service, bucket, name, nil, nil, true,
|
368
|
+
user_project: user_project
|
369
|
+
end
|
370
|
+
|
332
371
|
##
|
333
372
|
# Updates the file with changes made in the given block in a single
|
334
373
|
# PATCH request. The following attributes may be set: {#cache_control=},
|
@@ -639,6 +678,11 @@ module Google
|
|
639
678
|
# Permanently deletes the file.
|
640
679
|
#
|
641
680
|
# @return [Boolean] Returns `true` if the file was deleted.
|
681
|
+
# @param [Boolean, Integer] generation Specify a version of the file to
|
682
|
+
# delete. When `true`, it will delete the version returned by
|
683
|
+
# {#generation}. The default behavior is to delete the latest version
|
684
|
+
# of the file (regardless of the version to which the file is set,
|
685
|
+
# which is the version returned by {#generation}.)
|
642
686
|
#
|
643
687
|
# @example
|
644
688
|
# require "google/cloud/storage"
|
@@ -650,9 +694,31 @@ module Google
|
|
650
694
|
# file = bucket.file "path/to/my-file.ext"
|
651
695
|
# file.delete
|
652
696
|
#
|
653
|
-
|
697
|
+
# @example The file's generation can used by passing `true`:
|
698
|
+
# require "google/cloud/storage"
|
699
|
+
#
|
700
|
+
# storage = Google::Cloud::Storage.new
|
701
|
+
#
|
702
|
+
# bucket = storage.bucket "my-bucket"
|
703
|
+
#
|
704
|
+
# file = bucket.file "path/to/my-file.ext"
|
705
|
+
# file.delete generation: true
|
706
|
+
#
|
707
|
+
# @example A generation can also be specified:
|
708
|
+
# require "google/cloud/storage"
|
709
|
+
#
|
710
|
+
# storage = Google::Cloud::Storage.new
|
711
|
+
#
|
712
|
+
# bucket = storage.bucket "my-bucket"
|
713
|
+
#
|
714
|
+
# file = bucket.file "path/to/my-file.ext"
|
715
|
+
# file.delete generation: 123456
|
716
|
+
#
|
717
|
+
def delete generation: nil
|
718
|
+
generation = self.generation if generation == true
|
654
719
|
ensure_service!
|
655
|
-
service.delete_file bucket, name,
|
720
|
+
service.delete_file bucket, name, generation: generation,
|
721
|
+
user_project: user_project
|
656
722
|
true
|
657
723
|
end
|
658
724
|
|
@@ -846,12 +912,75 @@ module Google
|
|
846
912
|
|
847
913
|
##
|
848
914
|
# Reloads the file with current data from the Storage service.
|
849
|
-
|
915
|
+
#
|
916
|
+
# @param [Boolean, Integer] generation Specify a version of the file to
|
917
|
+
# reload with. When `true`, it will reload the version returned by
|
918
|
+
# {#generation}. The default behavior is to reload with the latest
|
919
|
+
# version of the file (regardless of the version to which the file is
|
920
|
+
# set, which is the version returned by {#generation}.)
|
921
|
+
#
|
922
|
+
# @example
|
923
|
+
# require "google/cloud/storage"
|
924
|
+
#
|
925
|
+
# storage = Google::Cloud::Storage.new
|
926
|
+
#
|
927
|
+
# bucket = storage.bucket "my-bucket"
|
928
|
+
#
|
929
|
+
# file = bucket.file "path/to/my-file.ext"
|
930
|
+
# file.reload!
|
931
|
+
#
|
932
|
+
# @example The file's generation can used by passing `true`:
|
933
|
+
# require "google/cloud/storage"
|
934
|
+
#
|
935
|
+
# storage = Google::Cloud::Storage.new
|
936
|
+
#
|
937
|
+
# bucket = storage.bucket "my-bucket"
|
938
|
+
#
|
939
|
+
# file = bucket.file "path/to/my-file.ext", generation: 123456
|
940
|
+
# file.reload! generation: true
|
941
|
+
#
|
942
|
+
# @example A generation can also be specified:
|
943
|
+
# require "google/cloud/storage"
|
944
|
+
#
|
945
|
+
# storage = Google::Cloud::Storage.new
|
946
|
+
#
|
947
|
+
# bucket = storage.bucket "my-bucket"
|
948
|
+
#
|
949
|
+
# file = bucket.file "path/to/my-file.ext", generation: 123456
|
950
|
+
# file.reload! generation: 123457
|
951
|
+
#
|
952
|
+
def reload! generation: nil
|
953
|
+
generation = self.generation if generation == true
|
850
954
|
ensure_service!
|
851
|
-
@gapi = service.get_file bucket, name,
|
955
|
+
@gapi = service.get_file bucket, name, generation: generation,
|
956
|
+
user_project: user_project
|
957
|
+
# If NotFound then lazy will never be unset
|
958
|
+
@lazy = nil
|
959
|
+
self
|
852
960
|
end
|
853
961
|
alias_method :refresh!, :reload!
|
854
962
|
|
963
|
+
##
|
964
|
+
# Determines whether the file exists in the Storage service.
|
965
|
+
def exists?
|
966
|
+
# Always true if we have a grpc object
|
967
|
+
return true unless lazy?
|
968
|
+
# If we have a value, return it
|
969
|
+
return @exists unless @exists.nil?
|
970
|
+
ensure_gapi!
|
971
|
+
@exists = true
|
972
|
+
rescue Google::Cloud::NotFoundError
|
973
|
+
@exists = false
|
974
|
+
end
|
975
|
+
|
976
|
+
##
|
977
|
+
# @private
|
978
|
+
# Determines whether the file was created without retrieving the
|
979
|
+
# resource record from the API.
|
980
|
+
def lazy?
|
981
|
+
@lazy
|
982
|
+
end
|
983
|
+
|
855
984
|
##
|
856
985
|
# @private URI of the location and file name in the format of
|
857
986
|
# <code>gs://my-bucket/file-name.json</code>.
|
@@ -869,6 +998,21 @@ module Google
|
|
869
998
|
end
|
870
999
|
end
|
871
1000
|
|
1001
|
+
##
|
1002
|
+
# @private New lazy Bucket object without making an HTTP request.
|
1003
|
+
def self.new_lazy bucket, name, service, generation: nil,
|
1004
|
+
user_project: nil
|
1005
|
+
# TODO: raise if name is nil?
|
1006
|
+
new.tap do |f|
|
1007
|
+
f.gapi.bucket = bucket
|
1008
|
+
f.gapi.name = name
|
1009
|
+
f.gapi.generation = generation
|
1010
|
+
f.service = service
|
1011
|
+
f.user_project = user_project
|
1012
|
+
f.instance_variable_set :@lazy, true
|
1013
|
+
end
|
1014
|
+
end
|
1015
|
+
|
872
1016
|
protected
|
873
1017
|
|
874
1018
|
##
|
@@ -877,6 +1021,14 @@ module Google
|
|
877
1021
|
fail "Must have active connection" unless service
|
878
1022
|
end
|
879
1023
|
|
1024
|
+
##
|
1025
|
+
# Ensures the Google::Apis::StorageV1::Bucket object exists.
|
1026
|
+
def ensure_gapi!
|
1027
|
+
ensure_service!
|
1028
|
+
return unless lazy?
|
1029
|
+
reload! generation: true
|
1030
|
+
end
|
1031
|
+
|
880
1032
|
def update_gapi! *attributes
|
881
1033
|
attributes.flatten!
|
882
1034
|
return if attributes.empty?
|
@@ -931,8 +1083,8 @@ module Google
|
|
931
1083
|
def verify_file! file, verify = :md5
|
932
1084
|
verify_md5 = verify == :md5 || verify == :all
|
933
1085
|
verify_crc32c = verify == :crc32c || verify == :all
|
934
|
-
Verifier.verify_md5! self, file if verify_md5
|
935
|
-
Verifier.verify_crc32c! self, file if verify_crc32c
|
1086
|
+
Verifier.verify_md5! self, file if verify_md5 && md5
|
1087
|
+
Verifier.verify_crc32c! self, file if verify_crc32c && crc32c
|
936
1088
|
file
|
937
1089
|
end
|
938
1090
|
|
@@ -163,7 +163,7 @@ module Google
|
|
163
163
|
delimiter = nil, max = nil, versions = nil,
|
164
164
|
user_project: nil
|
165
165
|
files = new(Array(gapi_list.items).map do |gapi_object|
|
166
|
-
File.from_gapi gapi_object, service
|
166
|
+
File.from_gapi gapi_object, service, user_project: user_project
|
167
167
|
end)
|
168
168
|
files.instance_variable_set :@token, gapi_list.next_page_token
|
169
169
|
files.instance_variable_set :@prefixes, Array(gapi_list.prefixes)
|
@@ -137,6 +137,10 @@ module Google
|
|
137
137
|
# Retrieves bucket by name.
|
138
138
|
#
|
139
139
|
# @param [String] bucket_name Name of a bucket.
|
140
|
+
# @param [Boolean] skip_lookup Optionally create a Bucket object
|
141
|
+
# without verifying the bucket resource exists on the Storage service.
|
142
|
+
# Calls made on this object will raise errors if the bucket resource
|
143
|
+
# does not exist. Default is `false`.
|
140
144
|
# @param [Boolean, String] user_project If the `requester_pays` flag is
|
141
145
|
# enabled for the requested bucket, and if this parameter is set to
|
142
146
|
# `true`, transit costs for operations on the requested bucket or a
|
@@ -180,7 +184,11 @@ module Google
|
|
180
184
|
# user_project: "my-other-project"
|
181
185
|
# files = bucket.files # Billed to "my-other-project"
|
182
186
|
#
|
183
|
-
def bucket bucket_name, user_project: nil
|
187
|
+
def bucket bucket_name, skip_lookup: false, user_project: nil
|
188
|
+
if skip_lookup
|
189
|
+
return Bucket.new_lazy bucket_name, service,
|
190
|
+
user_project: user_project
|
191
|
+
end
|
184
192
|
gapi = service.get_bucket bucket_name, user_project: user_project
|
185
193
|
Bucket.from_gapi gapi, service, user_project: user_project
|
186
194
|
rescue Google::Cloud::NotFoundError
|
@@ -258,12 +266,11 @@ module Google
|
|
258
266
|
# Logs](https://cloud.google.com/storage/docs/access-logs).
|
259
267
|
# @param [Symbol, String] storage_class Defines how objects in the
|
260
268
|
# bucket are stored and determines the SLA and the cost of storage.
|
261
|
-
#
|
262
|
-
# `:coldline`,
|
263
|
-
# Availability), as well as the strings returned by
|
269
|
+
# Accepted values include `:multi_regional`, `:regional`, `:nearline`,
|
270
|
+
# and `:coldline`, as well as the equivalent strings returned by
|
264
271
|
# {Bucket#storage_class}. For more information, see [Storage
|
265
272
|
# Classes](https://cloud.google.com/storage/docs/storage-classes). The
|
266
|
-
# default value is
|
273
|
+
# default value is the Standard storage class, which is equivalent to
|
267
274
|
# `:multi_regional` or `:regional` depending on the bucket's location
|
268
275
|
# settings.
|
269
276
|
# @param [Boolean] versioning Whether [Object
|
@@ -313,12 +320,13 @@ module Google
|
|
313
320
|
website_main: nil, website_404: nil, versioning: nil
|
314
321
|
new_bucket = Google::Apis::StorageV1::Bucket.new({
|
315
322
|
name: bucket_name,
|
316
|
-
location: location
|
317
|
-
storage_class: storage_class_for(storage_class)
|
323
|
+
location: location
|
318
324
|
}.delete_if { |_, v| v.nil? })
|
325
|
+
storage_class = storage_class_for(storage_class)
|
319
326
|
updater = Bucket::Updater.new(new_bucket).tap do |b|
|
320
327
|
b.logging_bucket = logging_bucket unless logging_bucket.nil?
|
321
328
|
b.logging_prefix = logging_prefix unless logging_prefix.nil?
|
329
|
+
b.storage_class = storage_class unless storage_class.nil?
|
322
330
|
b.website_main = website_main unless website_main.nil?
|
323
331
|
b.website_404 = website_404 unless website_404.nil?
|
324
332
|
b.versioning = versioning unless versioning.nil?
|
@@ -326,9 +326,11 @@ module Google
|
|
326
326
|
|
327
327
|
##
|
328
328
|
# Permanently deletes a file.
|
329
|
-
def delete_file bucket_name, file_path,
|
329
|
+
def delete_file bucket_name, file_path, generation: nil,
|
330
|
+
user_project: nil
|
330
331
|
execute do
|
331
332
|
service.delete_object bucket_name, file_path,
|
333
|
+
generation: generation,
|
332
334
|
user_project: user_project(user_project)
|
333
335
|
end
|
334
336
|
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.
|
4
|
+
version: 1.4.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: 2017-
|
12
|
+
date: 2017-08-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: google-cloud-core
|