evernote更新便笺资源

2024-05-13 01:32:50 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我的问题是:如果给定HTML,如何判断注释的资源是否需要更新?我已经考虑过将图像数据与当前资源的所有数据进行比较,但这似乎很慢。现在我只为每个img标签创建一个新资源。在

我发现的一些有用的资源包括Evernote resources guide和{a2}。如有任何建议,我们将不胜感激。在


Tags: 数据用户标记图像语言应用程序imgfor
1条回答
网友
1楼 · 发布于 2024-05-13 01:32:50

最好的方法是比较文件的MD5散列。Evernote notes通过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还说:

"Submit a set of changes to a resource to the service. This can be used to update the meta-data about the resource, but cannot be used to change the binary contents of the resource (including the length and hash). These cannot be changed directly without creating a new resource and removing the old one via updateNote."

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

相关问题 更多 >