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