Sha256: 9d01e967b4a915f6ec60648b7770d0bc7e8b5a7cef42a4b76134566efc0f8d6d

Contents?: true

Size: 1.42 KB

Versions: 8

Compression:

Stored size: 1.42 KB

Contents

=begin rdoc
  S3 overloads
=end
module AWS
  module S3
    class S3Object
       class << self
         
        alias :original_store :store
        def store(key, data, bucket = nil, options = {})
          store_folders(key, bucket, options) if options[:use_virtual_directories]
          original_store(key, data, bucket, options)
        end
        
        def streamed_store(key, filepath, bucket = nil, options = {})
          store_folders(key, bucket, options) if options[:use_virtual_directories]
          store(key,File.open(filepath), bucket)
        end
        
        def store_directory(directory, bucket, options = {})
          Dir[File.join(directory, "*")].each do |file|
            streamed_store("#{File.basename(File.dirname(file))}/#{File.basename(file)}", file, bucket, options.update(:use_virtual_directories => true))
          end
        end
  
        def store_folders(key, bucket = nil, options = {})
          folders = key.split("/")
          folders.slice!(0)
          folders.pop
          current_folder = "/"
          folders.each {|folder|
            current_folder += folder
            store_folder(current_folder, bucket, options)
            current_folder += "/"
          }
        end
  
        def store_folder(key, bucket = nil, options = {})
          original_store(key + "_$folder$", "", bucket, options) # store the magic entry that emulates a folder
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 4 rubygems

Version Path
auser-poolparty-0.0.8 lib/s3/s3_object_store_folders.rb
auser-poolparty-0.0.9 lib/s3/s3_object_store_folders.rb
auser-poolparty-0.1.0 lib/s3/s3_object_store_folders.rb
auser-poolparty-0.1.1 lib/s3/s3_object_store_folders.rb
auser-poolparty-0.1.2 lib/s3/s3_object_store_folders.rb
dreadpiratepj-poolparty-0.0.8 lib/s3/s3_object_store_folders.rb
jtzemp-poolparty-0.1.2 lib/s3/s3_object_store_folders.rb
poolparty-0.0.4 lib/s3/s3_object_store_folders.rb