Skip to content

Commit 28e308a

Browse files
author
remi Taylor
committed
WIP
1 parent 4ccb96b commit 28e308a

2 files changed

Lines changed: 55 additions & 23 deletions

File tree

storage/files.rb

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -197,47 +197,49 @@ def copy_object project_id:, source_bucket_name:, source_file_name:,
197197
# [END copy_object]
198198
end
199199

200-
if __FILE__ == $0
201-
case ARGV.shift
200+
def run_sample arguments
201+
command = arguments.shift
202+
203+
case command
202204
when "list"
203205
list_bucket_contents project_id: ENV["GCLOUD_PROJECT"],
204-
bucket_name: ARGV.shift
206+
bucket_name: arguments.shift
205207
when "list_prefix"
206208
raise NotImplementedError, "list_prefix"
207209
when "upload"
208210
upload_object project_id: ENV["GCLOUD_PROJECT"],
209-
bucket_name: ARGV.shift,
210-
local_path: ARGV.shift
211+
bucket_name: arguments.shift,
212+
local_path: arguments.shift
211213
when "download"
212214
download_object project_id: ENV["GCLOUD_PROJECT"],
213-
bucket_name: ARGV.shift,
214-
file_name: ARGV.shift,
215-
local_path: ARGV.shift
215+
bucket_name: arguments.shift,
216+
file_name: arguments.shift,
217+
local_path: arguments.shift
216218
when "delete"
217219
delete_object project_id: ENV["GCLOUD_PROJECT"],
218-
bucket_name: ARGV.shift,
219-
file_name: ARGV.shift
220+
bucket_name: arguments.shift,
221+
file_name: arguments.shift
220222
when "metadata"
221223
list_object_details project_id: ENV["GCLOUD_PROJECT"],
222-
bucket_name: ARGV.shift,
223-
file_name: ARGV.shift
224+
bucket_name: arguments.shift,
225+
file_name: arguments.shift
224226
when "make_public"
225227
make_object_public project_id: ENV["GCLOUD_PROJECT"],
226-
bucket_name: ARGV.shift,
227-
file_name: ARGV.shift
228+
bucket_name: arguments.shift,
229+
file_name: arguments.shift
228230
when "signed_url"
229231
raise NotImplementedError, "signed_url"
230232
when "rename"
231233
rename_object project_id: ENV["GCLOUD_PROJECT"],
232-
bucket_name: ARGV.shift,
233-
file_name: ARGV.shift,
234-
new_name: ARGV.shift
234+
bucket_name: arguments.shift,
235+
file_name: arguments.shift,
236+
new_name: arguments.shift
235237
when "copy"
236238
copy_object project_id: ENV["GCLOUD_PROJECT"],
237-
source_bucket_name: ARGV.shift,
238-
source_file_name: ARGV.shift,
239-
dest_bucket_name: ARGV.shift,
240-
dest_file_name: ARGV.shift
239+
source_bucket_name: arguments.shift,
240+
source_file_name: arguments.shift,
241+
dest_bucket_name: arguments.shift,
242+
dest_file_name: arguments.shift
241243
else
242244
puts <<-usage
243245
Usage: bundle exec ruby files.rb [command] [arguments]
@@ -251,11 +253,15 @@ def copy_object project_id:, source_bucket_name:, source_file_name:,
251253
metadata <bucket> <file> Display metadata for a file in a bucket
252254
make_public <bucket> <file> Make a file in a bucket public
253255
signed_url <bucket> <file> Generate a signed URL to access a file
254-
rename <bucket> <file> <new> Rename a file
256+
rename <bucket> <file> <new> Rename a file in a bucket
255257
copy <srcBucket> <srcFile> <destBucket> <destFile> Copy file to other bucket
256258
257259
Environment variables:
258260
GCLOUD_PROJECT must be set to your Google Cloud project ID
259261
usage
260262
end
261263
end
264+
265+
if __FILE__ == $0
266+
run_sample ARGV
267+
end
Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,35 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
require_relative "../sample"
15+
require_relative "../files"
1616
require "rspec"
1717
require "gcloud"
18+
19+
describe "Google Cloud Storage files sample" do
20+
21+
it "can list all files in a bucket"
22+
it "can list all files with a prefix in a bucket"
23+
24+
it "can upload a local file to a bucket" do
25+
# file doesn't exist
26+
27+
# run command
28+
29+
# file does exist
30+
end
31+
32+
it "can download a file from a bucket"
33+
it "can delete a file in a bucket"
34+
it "can print metadata for a file in a bucket"
35+
it "can make a file in a bucket public"
36+
it "can generate a signed URL to access a file"
37+
it "can rename a file in a bucket"
38+
it "can copy a file to another bucket"
39+
40+
end
41+
42+
__END__
43+
1844
require "net/http"
1945
require "tempfile"
2046

0 commit comments

Comments
 (0)