我正在编写类似cms的应用程序,我希望我的图像作为附件存储在couchdb中。问题是命名附件,因为我不希望我的图像命名相同(例如/db/doc_id/tumb.jpg)
理想情况下,附件名称应取决于doc.name字段。为了做到这一点,每次用户更改当前照片文档的名称(description|alt)时,我都必须重命名附件。
所以我的问题是:如何更改附件名称?或者也许我应该走另一条路来解决我的问题?
Szymon,
我建议考虑使用UUID作为文档名称,并将附件存储为"静态",如"原始"、"拇指"、"300宽"等。用户上传文件时给出的名称可以存储为密钥,您可以稍后使用MapReduce索引来检索使用该名称的图像/文件。
然而,如果你走这条路,你将不得不以不同的方式解决"重复"问题——因为你可以用相同的用户提供的名称轻松地多次上传相同的图像,而且不会有冲突。
然而,根据您正在构建的内容,让用户提供一个唯一的名称通常是不明智的——例如Flickr(以及其他许多网站)就没有。
如果您确实需要将doc_id==设置为用户给定的名称,那么将附件存储在静态名称下仍然是明智的,这样您就不必更新附件名称。
最后,如果您觉得确实必须更改附件名称(当然也有需要更改的情况),最简单的方法是从旧位置(或与文档一起)获取附件,将其作为新名称放置,然后删除具有旧名称的附件。
希望能有所帮助!
使用此命令>
curl -v http://localhost:5984/database/DocumentID/OldFileName?rev=RevisionID -X MOVE -H "Destination: NewFileName"