about summary refs log tree commit homepage
path: root/lib/mogilefs/mogilefs.rb
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2012-10-22 20:18:06 +0000
committerEric Wong <normalperson@yhbt.net>2012-10-22 21:02:43 +0000
commit231d1a91292f39d42df2317a2fe4eaa96fd68f41 (patch)
tree5a8d0a396448f0df28cdbf3b6293c7b51d18044e /lib/mogilefs/mogilefs.rb
parentc5d000337cdcbb15827258d6fd6b6830e8afcd59 (diff)
downloadmogilefs-client-231d1a91292f39d42df2317a2fe4eaa96fd68f41.tar.gz
This allows clients to avoid calling #file_info or #get_uris
immediate after uploading a file to MogileFS.  This can speed
things up for cache-using clients with write-through caching.
Diffstat (limited to 'lib/mogilefs/mogilefs.rb')
-rw-r--r--lib/mogilefs/mogilefs.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/mogilefs/mogilefs.rb b/lib/mogilefs/mogilefs.rb
index f5cb096..76325cb 100644
--- a/lib/mogilefs/mogilefs.rb
+++ b/lib/mogilefs/mogilefs.rb
@@ -244,6 +244,13 @@ class MogileFS::MogileFS < MogileFS::Client
   #   Keep in mind most HTTP servers do not support HTTP trailers, so
   #   passing a String is usually the safest way to use this.
   #
+  # [:info => Hash]
+  #
+  #   This is an empty hash that will be filled the same information
+  #   MogileFS::MogileFS#file_info.
+  #
+  #   Additionally, it contains one additional key: :uris,
+  #   an array of URI::HTTP objects to the stored destinations
   def new_file(key, args = nil, bytes = nil) # :yields: file
     raise MogileFS::ReadOnlyError if readonly?
     opts = { :key => key, :multi_dest => 1 }
@@ -275,6 +282,7 @@ class MogileFS::MogileFS < MogileFS::Client
     opts[:content_length] ||= bytes if bytes
     opts[:new_file_max_time] ||= @new_file_max_time
     opts[:start_time] = Time.now
+    info = opts[:info] and info["class"] = klass || "default"
 
     case (dests[0][1] rescue nil)
     when %r{\Ahttp://}