Class: Kurosawa::Filesystem

Inherits:
Object
  • Object
show all
Defined in:
lib/kurosawa/filesystems.rb

Class Method Summary collapse

Class Method Details

.instantiate(fs) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/kurosawa/filesystems.rb', line 9

def self.instantiate(fs)
	if fs.start_with?("file://")
		Kurosawa::Filesystems::Local.new(fs.sub("file://", ""))
	elsif fs.start_with?("s3://") or fs.start_with?("s3http://") or fs.start_with?("s3https://")
		
		url = URI.parse(fs);
		tokens = url.userinfo.split(":")

		Kurosawa::Filesystems::S3.new(
			access_key_id:"#{tokens[0]}",
			secret_access_key:"#{tokens[1]}",
			region:"#{tokens[2]}",
			bucket:url.scheme == "s3" ? url.host : "",
			endpoint:url.scheme == "s3" ? nil : "#{url.scheme.sub("s3","")}://#{url.host}:#{url.port}",
			force_path_style: url.scheme != "s3")
	else
		raise "Unknown filesystem"
	end
end