lib/cloudinary/uploader.rb in cloudinary-1.17.1 vs lib/cloudinary/uploader.rb in cloudinary-1.18.0
- old
+ new
@@ -63,11 +63,12 @@
:transformation => Cloudinary::Utils.generate_transformation_string(options.clone),
:type => options[:type],
:unique_filename => Cloudinary::Utils.as_safe_bool(options[:unique_filename]),
:upload_preset => options[:upload_preset],
:use_filename => Cloudinary::Utils.as_safe_bool(options[:use_filename]),
- :accessibility_analysis => Cloudinary::Utils.as_safe_bool(options[:accessibility_analysis])
+ :accessibility_analysis => Cloudinary::Utils.as_safe_bool(options[:accessibility_analysis]),
+ :metadata => Cloudinary::Utils.encode_context(options[:metadata])
}
params
end
def self.unsigned_upload(file, upload_preset, options={})
@@ -268,9 +269,32 @@
return self.call_tags_api(tag, "replace", public_ids, options)
end
def self.remove_all_tags(public_ids = [], options = {})
return self.call_tags_api(nil, "remove_all", public_ids, options)
+ end
+
+ # Populates metadata fields with the given values. Existing values will be overwritten.
+ #
+ # Any metadata-value pairs given are merged with any existing metadata-value pairs
+ # (an empty value for an existing metadata field clears the value).
+ #
+ # @param [Hash] metadata A list of custom metadata fields (by external_id) and the values to assign to each of them.
+ # @param [Array] public_ids An array of Public IDs of assets uploaded to Cloudinary.
+ # @param [Hash] options
+ # @option options [String] :resource_type The type of file. Default: image. Valid values: image, raw, video.
+ # @option options [String] :type The storage type. Default: upload. Valid values: upload, private, authenticated
+ # @return mixed a list of public IDs that were updated
+ # @raise [Cloudinary::Api:Error]
+ def self.update_metadata(metadata, public_ids, options = {})
+ self.call_api("metadata", options) do
+ {
+ timestamp: (options[:timestamp] || Time.now.to_i),
+ type: options[:type],
+ public_ids: Cloudinary::Utils.build_array(public_ids),
+ metadata: Cloudinary::Utils.encode_context(metadata)
+ }
+ end
end
private
def self.call_tags_api(tag, command, public_ids = [], options = {})