evernote更新笔记资源

时间:2014-05-26 03:24:36

标签: python evernote

我使用Evernote API for Python创建了一个允许用户创建和更新笔记的应用程序,但我无法理解如何有效地更新Evernote资源。这主要发生在我从HTML转换为ENML(Evernote标记语言)时,我从img标签创建资源(现在我只考虑图像资源)。

我的问题是:如果需要更新笔记资源,我该如何判断?我考虑过将图像数据与所有当前资源进行比较'数据,但似乎真的很慢。现在我只为每个img标签创建一个新资源。

我发现的一些有用资源包括Evernote resources guidethis sample code in the Evernote SDK。任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:1)

最好的方法是比较文件的MD5哈希值。 Evernote笔记通过MD5哈希跟踪资源。

要查看附加到Evernote注释的文件的MD5哈希值,只需查看标有“en-media”的ENML元素,标签的形式如下所示:

 <en-media type="mime-type" hash="md5-of-file" />

其中mime-type是文件类型,md5-of-file是文件的MD5哈希值。要获取注释的ENML,请调用getNote(此处为文档),并确保指定您想要的内容。注释的ENML内容是getNote(a note object)返回的对象的content属性的值。

虽然散列可能很昂贵,但MD5相对较快,计算文件的MD5散列比等待网络下载图像要快。

此外,updateResource method documentation说:

  

“向服务提交一组资源更改。这可以是   用于更新有关资源的元数据,但不能用于   更改资源的二进制内容(包括长度和   散列)即可。如果不创建新的,则无法直接更改这些内容   资源并通过updateNote删除旧资源。“

因此“更新”资源的方法是从注释中删除旧资源并在其位置创建一个新资源。您可以通过从相关注释的resources属性中包含的列表中删除Resource Object来删除资源。要添加新注释,只需将新资源对象添加到同一列表中。