Hi!
We don't force the user, because we provide API functions.
If you maintain images via a Windows Application and then use Word to edit the database file, you also don'T expect the Windows Application to work properly after that Wink
That is not an appropriate analogy. If you use two different applications to maintain the same images on disk, you don't expect to have to 'tell' each of them when you modify those images or add more. Each application should pick up this information automatically.
But that might not properly work because there are all kind of Regular Expressions where one inserted an image on another server that he doesn't want to change.
Parsing this raw HTML is much harder than using a DB-reference markup.
Who cares if it's harder, the computer will do it. In any case the difference is doing a search for '<!-- image id=12345>' versus searching for '<a href="uploads/picture12345.jpg">' - not a huge difference. It also represents a one-off change, rather than a translation that has to take place each time a blog entry is read from the database. Further, since the blog entries are stored in the database in their final, HTML form, rather than a version which needs to be processed before display, it makes it easier to handle those entries on the database level. For example, if you were importing the blog-entry database table into another blog system.
If you were to change the serendipity core so that in the future, all attempts to insert an image using the media gallery instead inserted a comment of the form you suggest <!-- image id="12345" -->, then you are breaking backwards compatibility. All images inserted after that core change would be in the new format, and all images inserted before would use <a href>s. Thus if the user attempted to rename an image using s9y, all the blog entries after the core upgrade would automatically handle it, but all of the old entries would not.
A much simpler solution is to do one-off link renaming. I will even write this feature for you

.
That's right, but those calls are always required when browsing the media gallery.
Ok, then they can't be optimised away.
It's not a copy, it's a cached representation. That is much different, because it allows to be updated in single- or eval dual-ways.
We/You can add functionality to make s9y be able to import other directories into that storage; but the internal storage should use the Database for storage of Meta-Data and fast access.
I agree that a database should be used for meta-data. But it should not duplicate meta-data which already exists in the filesystem.
Well, 100 is a bit too much, but usually we display 24 images or so per page. That would mean 24 FS calls.
Okay, performance data for 24 images is:
24 images with database:
0.05708003
0.031708002
0.036072016
0.134638071
0.028676033
Average: 0.05763483
24 images with filesystem:
0.03143096
0.027669907
0.029160023
0.036036015
0.033604145
Average: 0.03158021
When opening the media database, it mostly queries more than one image. When a blog page renders with 15 images, a plugin that uses the database could stack up those request in one single DB call, which would be faster than 15 filesystem calls.
It is not faster. See data above.
I still refuse to drop serendipity_images as the preferred storage mechanism because of the reasons already mentioned. Using the FS to always fetch file data is a dead-end and not enhancible or a wise thing to do, when we already have an established database storage.
The reasons you've mentioned are:
1. Performance. Testing proves that this is not an issue.
2. Hotlinks and authorid. These can still be stored in the database, but can use the path to the file for the key, rather than an image id.
3. You hope to write a plugin that will allow image renaming without creating broken links. I will write a plugin for you which does this for you which works by parsing the a href tag.
Advantages of using the filesystem:
1. Always have up to date information on the directory contents and the file meta data.
2. New images can be added simply by copying them to the appropriate directory.
3. Performance is the same or better.
Martin