Project

gcs

0.0
No commit activity in last 3 years
No release in over 3 years
Groovenauts' wrapper library for Google Cloud Storage with google-api-ruby-client
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.13
>= 0
~> 10.0
~> 3.0

Runtime

 Project Readme

gcs-ruby

Build Status

Groovenauts' wrapper library for Google Cloud Storage with google-api-ruby-client.

Installation

Add this line to your application's Gemfile:

gem 'gcs'

And then execute:

$ bundle

Or install it yourself as:

$ gem install gcs

Usage

gcs = Gcs.new(email_address, private_key)

# get bucket list
gcs.bucket(project_id)

# get object list
gcs.list_objects("myBucket", prefix: "path/to/subdir", max_results: 1000)

# get object metadata
get_object "myBucket", "myObject"
get_object "gs://myBucket/myObject"

# download object content
io = StringIO.new
get_object "myBucket", "myObject", download_dest: io
get_object "gs://myBucket/myObject", download_dest: io

# delete object
gcs.delete_object("myBucket", "myObject")
gcs.delete_object("gs://myBucket/myObject")

# create new object
io = StringIO.new("Hello, World!\")
gcs.insert_object("myBucket", "myObject", io)

# copy recursively
gcs.copy_tree("gs://myBucket1/src", "gs://myBucket2/dest")

# delete recursively
gcs.remove_tree("gs://myBucket/dir")

# read object content with size limitation
gcs.read_partial("gs://myBucket/myObject", limit: 1024) # => read first part of object at least 1024 bytes.
gcs.read_partial("myBucket", "myObjet", limit: 1024)
gcs.read_partial("gs://myBucket/myObject", limit: 1024, trim_after_last_delimiter: "\n") #=> remove substr after last "\n"

# initiate resumable upload
# return session URL to upload object content by PUT method requests.
# see https://cloud.google.com/storage/docs/json_api/v1/how-tos/resumable-upload
# origin_domain keyword arg was for CORS setting.
gcs.initiate_resumable_upload("myBucket", "myObject", content_type: "text/plain", origin_domain: "http://example.com")
gcs.initiate_resumable_upload("gs://myBucket/myObject", content_type: "text/plain", origin_domain: "http://example.com")

# compose objects
gcs.compose_object(["gs://myBucket/myObject-1", "gs://myBucket/myObject-2"], "gs://myBucket/composedObject")
gcs.compose_object("gs://myBucket/myObject-*", "gs://myBucket/composedObject")