Sha256: 5e5bb09b3111f4dd9b6e08cb1bbb96c3e238b549bfef3d37ce84d6f4452fbd16
Contents?: true
Size: 1.08 KB
Versions: 6
Compression:
Stored size: 1.08 KB
Contents
class Chef class Knife class S3Source attr_accessor :url def self.fetch(url) source = Chef::Knife::S3Source.new source.url = url source.body end def body bucket_obj.files.get(path).body end private def bucket_obj @bucket_obj ||= fog.directories.get(bucket) end def bucket uri = URI(@url) if uri.scheme == "s3" URI(@url).host else URI(@url).path.split("/")[1] end end def path uri = URI(@url) if uri.scheme == "s3" URI(@url).path.sub(/^\//, '') else URI(@url).path.split(bucket).last.sub(/^\//, '') end end def fog require 'fog/aws' # lazy load the fog library to speed up the knife run @fog ||= Fog::Storage::AWS.new( aws_access_key_id: Chef::Config[:knife][:aws_access_key_id], aws_secret_access_key: Chef::Config[:knife][:aws_secret_access_key] ) end end end end
Version data entries
6 entries across 6 versions & 1 rubygems