def create_blob(credentials, bucket_id, blob_id, blob_data, opts={})
check_credentials(credentials)
blob_meta = {}
opts.inject({}){|result, (k,v)| blob_meta[k] = v if k.match(/X[_-]Deltacloud[_-]Blobmeta[_-]/i)}
blob = {
:id => blob_id,
:bucket => bucket_id,
:content_length => blob_data[:tempfile].length,
:content_type => blob_data[:type],
:last_modified => Time.now,
:user_metadata => blob_meta.gsub_keys('X_Deltacloud_Blobmeta_', ''),
:content => blob_data[:tempfile].read
}
File.open( File::join("#{@storage_root}", "buckets", "blobs", "#{blob_id}.yml"), 'w' ) {|b| YAML.dump( blob, b )}
Blob.new(blob)
end