Module: IOStreams::S3

Defined in:
lib/io_streams/s3.rb,
lib/io_streams/s3/path.rb,
lib/io_streams/s3/reader.rb,
lib/io_streams/s3/writer.rb

Defined Under Namespace

Classes: Path, Reader, Writer

Class Method Summary collapse

Class Method Details

.load_dependenciesObject



18
19
20
21
22
23
24
# File 'lib/io_streams/s3.rb', line 18

def self.load_dependencies
  return if defined?(::Aws::S3::Resource)

  require 'aws-sdk-s3'
rescue LoadError => exc
  raise(LoadError, "Install gem 'aws-sdk-s3' to read and write AWS S3 files: #{exc.message}")
end

.parse_uri(uri) ⇒ Object

Sample URI: s3://mybucket/user/abc.zip



9
10
11
12
13
14
15
16
# File 'lib/io_streams/s3.rb', line 9

def self.parse_uri(uri)
  uri = URI.parse(uri)
  raise "Invalid URI. Required Format: 's3://<bucket_name>/<key>'" unless uri.scheme == 's3'
  {
    bucket: uri.host,
    key:    uri.path.sub(/\A\//, '')
  }
end