Bug Description
PR #1182 causes Cloudinary assets to be overwritten when a new WordPress upload reuses the same filename.
WordPress only uniquifies filenames within the same month. If test.jpg is uploaded in April, Cloudinary creates public ID test. A second test.jpg in the same month is renamed to test-1.jpg (public ID test-1). A later upload of test.jpg in May keeps the original filename, so Cloudinary again gets public ID test.
After #1182, the plugin treats an existing public ID as a replacement and overwrites the original Cloudinary asset instead of creating a distinct one.
Expected Behaviour
Uploading a new file with the same basename in a different month should not overwrite an existing Cloudinary asset. The plugin should generate a unique public ID (or otherwise treat it as a new asset), even when WordPress reuses the original filename.
Steps to reproduce
- Upload
test.jpg to the WordPress Media Library in month A (e.g. April). Confirm it syncs to Cloudinary with public ID test.
- Upload a different image also named
test.jpg in the same month. Confirm WordPress renames it to test-1.jpg and Cloudinary uses public ID test-1.
- Upload another different image named
test.jpg in a later month (e.g. May). Confirm WordPress keeps the filename test.jpg.
- Check the original Cloudinary asset with public ID
test.
- See that it has been overwritten by the May upload instead of remaining the April image.
Screenshots
Additional context
This is a regression from #1182. The change detects an existing public ID and assumes a replacement, which is incorrect when WordPress reuses a filename across months.
- WordPress version:
- Plugin version:
- Gutenberg plugin version (if applicable):
- PHP version:
- Plugin settings:
Bug Description
PR #1182 causes Cloudinary assets to be overwritten when a new WordPress upload reuses the same filename.
WordPress only uniquifies filenames within the same month. If
test.jpgis uploaded in April, Cloudinary creates public IDtest. A secondtest.jpgin the same month is renamed totest-1.jpg(public IDtest-1). A later upload oftest.jpgin May keeps the original filename, so Cloudinary again gets public IDtest.After #1182, the plugin treats an existing public ID as a replacement and overwrites the original Cloudinary asset instead of creating a distinct one.
Expected Behaviour
Uploading a new file with the same basename in a different month should not overwrite an existing Cloudinary asset. The plugin should generate a unique public ID (or otherwise treat it as a new asset), even when WordPress reuses the original filename.
Steps to reproduce
test.jpgto the WordPress Media Library in month A (e.g. April). Confirm it syncs to Cloudinary with public IDtest.test.jpgin the same month. Confirm WordPress renames it totest-1.jpgand Cloudinary uses public IDtest-1.test.jpgin a later month (e.g. May). Confirm WordPress keeps the filenametest.jpg.test.Screenshots
Additional context
This is a regression from #1182. The change detects an existing public ID and assumes a replacement, which is incorrect when WordPress reuses a filename across months.