Sha256: aaed6e8d42d2f970a57d333d5654d8074e67d9633c8cd70c62cf8dcc9f5b35f1

Contents?: true

Size: 676 Bytes

Versions: 1

Compression:

Stored size: 676 Bytes

Contents

require 'uri'
module IOStreams
  module S3
    autoload :Reader, 'io_streams/s3/reader'
    autoload :Writer, 'io_streams/s3/writer'

    # Sample URI: s3://mybucket/user/abc.zip
    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

    def self.load_dependencies
      return unless 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
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
iostreams-0.17.1 lib/io_streams/s3.rb