By default, when using our API for uploading, Cloudinary will set a randomly generated public ID for the uploaded image. It's also possible to choose this value yourself, or have it chosen based on the filename of the file you uploaded.
API
When calling our Upload API, you can set the use_filename
parameter to true
to set the uploaded image's public ID to match the original file's name, normalized, with some random characters added to the end to ensure uniqueness.
If you want to use the original filename without any additional characters, that's also possible. In addition to setting the use_filename
parameter to true
, you can set the unique_filename
parameter to false
and Cloudinary will use the normalized original filename without adding random characters for uniqueness.
Here's an example using Cloudinary's Ruby SDK:
Cloudinary::Uploader.upload("my_image.jpg", :use_filename => true, :unique_filename => false)
This example will upload the image with the public ID my_image
. If you already have an asset stored in your account with the same type, resource type, and public_id, it will be overwritten in this case.
Media Library UI / Upload Widget
You can also specify those options in an Upload Preset, including an upload preset which will be used when you upload files using our Upload Widget or our Media Library interface. For more information about setting up Upload Presets for your uploads, please see our Upload Preset Configuration article.
The corresponding options for your Upload Preset if you want the Public ID to be set based on the filename of the uploaded file are:
- Use filename or externally defined Public ID: On
- Unique filename: Off
Comments
20 comments
i think it not really keep the file name as it's current name** if** it has more period(s) other than it's file extension. I've test it today, the period will changed into underscore.
for example : image.name.png=>** image_name**.png
is there any solution to keep it as it is? it's real name with period(s) in it.
In Cloudinary we, indeed, replace periods with underscores as part of our naming conventions. Although, you can by-pass it by either explicitly supply the public_id, e.g., (in rails):
Cloudinary::Uploader.upload(" my.image.jpg", :public_id => "my.image")
Or, post-upload, rename the image using the Media-Library or the API, e.g., (in rails):
Cloudinary::Uploader.rename("my_image","my.image")
oh i see. so i supposed to specifically fill in the public_id with image file name
Did it work for you?
If there is any thing else we can assist you with, please feel free to open a ticket:
http://support.cloudinary.com/tickets/new
UPDATE
The system was just updated to support dot-included filenames, so
use_filename
will not replace dots with underscores.Hi
I am trying to upload the file keeping the original filename. Please check what I am doing wrong.
echo cl_image_upload_tag('test', array("tags" => "direct_photo_album", "callback" => $cors_location, "html" => array("multiple" => true),"folder" => "my_folder","unique_filename" => false));
I couldn't find the
use_filename
parameter in the code you shared.Please try the following and let me know if this works for you:
echo cl_image_upload_tag('test', array("tags" => "direct_photo_album", "callback" => $cors_location, "html" => array("multiple" => true),"folder" => "my_folder","use_filename" => TRUE, "unique_filename" => FALSE));
Hi Itay
I am using this in my view on RoR
<%= f.attachinary_file_field :file, as: :attachinary, cloudinary: {use_filename: true, unique_filename: false} %>
but it doesn't work. It is always changing the document name. Could you help me please?
For some reason the underscore characters are deleted from my comment.
this is how i have
http://screencast.com/t/PpWmDIgmQ7co
Hi,
Sorry for the very late reply, we have noticed that this request was left unattended. I see that your issue was handled through a support ticket with Itay:)
Hi there, I have the same problem as Mirta reported...
If you guys gave her the solution, could you please also answer it in here to help other people?
Thx!
Hi Luciano,
Please try to reach us at support@cloudinary.com
Best,
Yaki
Hello,
new here.
I havent found how to change the upload preset for image uploads from my computer, in order to keep the file names unchanged.
"You can also specify those options in an Upload Preset, including an upload preset which will be used when you upload files using our Upload Widget or our Media Library interface. For an example of this, please see our Upload Preset Configuration article."
(That article is now a video created 8 months ago and does not deal with that anymore, I believe
Where/how do I have to add use_filename: true
Hi Torsten,
To change this value in your Upload Preset go to your settings (at the top right) => Click on Upload => Click on "edit" in the desired upload preset => Click on the toggle button in "Use filename or externally defined Public ID" to make it "true".
If you have any more questions please let us know.
Thanks,
Tamara
Hi, I've turned "Use filename or externally defined Public ID" to "On", and "Unique Filename" to "Off" but I'm still getting a random filename when I upload via AppSmith.
Any idea what I might be doing wrong?
Hi @Hoopersclub,
May I please ask you to share a public_id of an asset that you've uploaded which has the random characters appended at the end? We can check the logs on our side and confirm what lead to this.
Hi @aleksandar, thanks for helping out. With some debugging on AppSmith end I figured out that for unsigned upload presets I had to pass public_id inside the parameters. I hadn't figured it out prior to this. Thanks anyway. Working ok!
Hi @Hoopersclub - no worries at all - glad you resolved that!
Hi,
what is the correct regular expression to apply to a string to obtain the exact public_id, using use_filename?
I need to check if a file already exsists, but I need to know the final format of public_id.
ex: "this is (my file) name.mp3" => "this_is_my_file_name.mp3"
Hi @ManzoniFausto,
Thanks for reaching out.
At the time of upload:
If you have set public_id value, then your public_id will have the value you set in this field. Please check the documentation for more information: Upload API
If you have set use_filename as true and unique_filename as false, then your public_id will be the same as file name.
If you have set use_filename as true and unique_filename as true, then your public_id will have random characters at the end of it.
If you have set use_filename as false and unique_filename as true, then your public_id will have random characters.
If you have set use_filename as false and unique_filename as false, then your public_id will have random characters.
Please refer to our Search API documentation in order for you to search by specifying the public_id based on the above conditions(whichever you chose to upload the file).
Alternatively, you can use our Admin API GetResources API call to fetch the list of public_ids in your case and figure out the pattern.
Hope this helps, please let me know if you have any further questions.
Best regards,
Sreenath
Please sign in to leave a comment.