Skip to content

Commit

Permalink
feat(storage): Support of Managed Folders (#24809)
Browse files Browse the repository at this point in the history
  • Loading branch information
shivgautam authored Feb 12, 2024
1 parent 548aae0 commit a6ab5c5
Show file tree
Hide file tree
Showing 7 changed files with 119 additions and 90 deletions.
11 changes: 8 additions & 3 deletions google-cloud-storage/lib/google/cloud/storage/bucket.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1319,6 +1319,9 @@ def delete if_metageneration_match: nil, if_metageneration_not_match: nil
# as distinct results. The default is `false`. For more information,
# see [Object Versioning
# ](https://cloud.google.com/storage/docs/object-versioning).
# @param [Boolean] include_folders_as_prefixes If `true`, will also include
# folders and managed folders, besides objects, in the returned prefixes.
# Only applicable if delimiter is set to '/'.
#
# @return [Array<Google::Cloud::Storage::File>] (See
# {Google::Cloud::Storage::File::List})
Expand Down Expand Up @@ -1346,17 +1349,19 @@ def delete if_metageneration_match: nil, if_metageneration_not_match: nil
# end
#
def files prefix: nil, delimiter: nil, token: nil, max: nil,
versions: nil, match_glob: nil
versions: nil, match_glob: nil, include_folders_as_prefixes: nil
ensure_service!
gapi = service.list_files name, prefix: prefix, delimiter: delimiter,
token: token, max: max,
versions: versions,
user_project: user_project,
match_glob: match_glob
match_glob: match_glob,
include_folders_as_prefixes: include_folders_as_prefixes
File::List.from_gapi gapi, service, name, prefix, delimiter, max,
versions,
user_project: user_project,
match_glob: match_glob
match_glob: match_glob,
include_folders_as_prefixes: include_folders_as_prefixes
end
alias find_files files

Expand Down
5 changes: 3 additions & 2 deletions google-cloud-storage/lib/google/cloud/storage/file/list.rb
Original file line number Diff line number Diff line change
Expand Up @@ -165,8 +165,8 @@ def all request_limit: nil, &block
# Google::Apis::StorageV1::Objects object.
def self.from_gapi gapi_list, service, bucket = nil, prefix = nil,
delimiter = nil, max = nil, versions = nil,
user_project: nil,
match_glob: nil
user_project: nil, match_glob: nil,
include_folders_as_prefixes: nil
files = new(Array(gapi_list.items).map do |gapi_object|
File.from_gapi gapi_object, service, user_project: user_project
end)
Expand All @@ -180,6 +180,7 @@ def self.from_gapi gapi_list, service, bucket = nil, prefix = nil,
files.instance_variable_set :@versions, versions
files.instance_variable_set :@user_project, user_project
files.instance_variable_set :@match_glob, match_glob
files.instance_variable_set :@include_folders_as_prefixes, include_folders_as_prefixes
files
end

Expand Down
3 changes: 2 additions & 1 deletion google-cloud-storage/lib/google/cloud/storage/service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,7 @@ def delete_notification bucket_name, notification_id, user_project: nil, options
# Retrieves a list of files matching the criteria.
def list_files bucket_name, delimiter: nil, max: nil, token: nil,
prefix: nil, versions: nil, user_project: nil,
match_glob: nil,
match_glob: nil, include_folders_as_prefixes: nil,
options: {}
execute do
service.list_objects \
Expand All @@ -372,6 +372,7 @@ def list_files bucket_name, delimiter: nil, max: nil, token: nil,
versions: versions,
user_project: user_project(user_project),
match_glob: match_glob,
include_folders_as_prefixes: include_folders_as_prefixes,
options: options
end
end
Expand Down
Loading

0 comments on commit a6ab5c5

Please sign in to comment.