如何使用 ibrowse 将附件上传到 CouchDB 中的文档?

2024-05-03

我已经使用curl上传图像文件Penguins.jpg。例如: C:\curl>curl -vX PUT -H "Content-Type: image/jpeg" http://localhost:5984/DBNAME/DOCID/Penguins?rev=LATEST_REVISION http://localhost:5984/DBNAME/DOCID/Penguins?rev=LATEST_REVISION --data-binary @Penguins.jpg

它起作用了...

那么,如何使用 ibrowse 实现相同的效果呢? ===============================


当然,文件上传是一个HTTP POST 。现在让我们首先编写一段 Erlang 代码,它的作用是HTTP/1.1 POST with Ibrowse https://github.com/cmullaparthi/ibrowse/wiki/ibrowse-API.



%% Assumes Ibrowse application is in Code path
ensure_ibrowse()->
    case whereis(ibrowse) of
        undefined -> ibrowse:start();
        _ -> ok
    end.
post(Link,Data,Headers)-> ensure_ibrowse(), try ibrowse:send_req(Link,Headers,post,Data) of { _, _, _,Result} -> io:format("\n\tFile Uploaded. Return: ~p~n",[Result]); EE -> {error,EE} catch XX:XX2 -> {error,XX,XX2} end.

从这里开始,我们开始做 Couchdb 的事情。



-define(Link,"http://localhost:5984/DBNAME/DOCID/Penguins?rev=LATEST_REVISION").
%% File_path must be a valid file ! upload_file(Full_file_path)-> case file:read_file(Full_file_path) of {ok,Binary} -> post(?Link,Binary,[{"Content-Type","image/jpeg"}]); Error -> Error end.

就这样吧!您所需要做的就是自定义您的宏Link适合您的沙发 DB 设置,您就可以开始了!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 ibrowse 将附件上传到 CouchDB 中的文档? 的相关文章

  • jQuery CouchDB - 视图的过滤键

    我正在使用与 couchdb 捆绑在一起的 javascript 库来查询数据库 附带说明一下 这里很好地概述了它提供的功能 并提供了很多很好的示例 http bradley holt com 2011 07 couchdb jquery
  • 拦截登录/注销ejabberd

    我想知道用户何时在自定义模块中的 ejabberd 会话中登录和注销 而不更改 ejabberd 代码 我需要它 因为我必须在用户登录时执行一些操作 并清理用户注销时执行的操作 另外 在某些情况下我需要能够注销用户 那么 有没有办法扩展某些
  • 如何修改erlang中的记录?

    我需要修改操作记录中的值 place 和 other place op action walk from place to other place preconds at place me on floor me other place p
  • 当通过 basho rebar 从命令行运行 Erlang 应用程序时,如何设置 Erlang 节点名称

    我已经使用 basho rebar 编译了我的 Erlang 应用程序 它生成了一个独立的 escript 可执行文件 我从命令行运行它 如下所示 myapp myconfig config 我的问题是如何确定运行我的应用程序的 Erlan
  • 如何在 couchdb 视图中调用另一个视图?

    我刚刚读完 couchdb 权威指南 一书 并开始摆弄设计文档 然而有一件事我不明白 到目前为止我看到的所有例子都有些线性 Example id 1 rev name first something blue child 2 id 2 re
  • CouchDB 中的分页?

    我将如何实现分页所需的查询 基本上 当请求第 1 页时 获取前 5 个条目 对于第 2 页 获取接下来的 5 页 依此类推 我计划通过 couchdb python 模块使用它 但这不会对实现产生任何影响 The CouchDB 指南 ht
  • 如何在android中安装和使用couch db

    我应该如何在 android 中安装和使用 couch Db 我的意思是本地沙发数据库 我可以在平板电脑和模拟器中使用它 为此我必须遵循哪些步骤 我目前正在开发一个使用它的项目 有两种选择 1 couchbase android 是的 co
  • Ionic/Cordova 应用程序中的身份验证

    首先 我不是专业人士 在我成为一名更好的开发人员的过程中 我试图了解需要什么以及如何完成为 Ionic Framework 应用程序创建注册 登录 大多数单页应用程序 SPA 在节点服务器上处理身份验证 该服务器还为客户端提供 HTML 就
  • pouchdb 从 couchdb 复制:非常慢

    我的 couchDB 中有一个约 10k 条目 约 30Mo 无附件 数据库 使用 Pouchdb 浏览器端 从沙发复制时 确实需要一段时间才能完成 令我惊讶的是我的沙发在此期间收到的请求数量 数千 我猜和文件一样多 这正常吗 有没有办法
  • 在 Erlang 中实现图灵机

    我有一个小项目 与实现图灵机非常相似 我遇到的基本问题是保存当前配置 例如头部的位置和更多信息 对我来说特别重要的是保留头部位置以使其向前或向后移动 Erlang 解决这个问题的方法是什么 我是 Erlang 新手 但据我探索 OTP ge
  • 获取couchdb数据库中所有文档的文档id

    我有一个简单的问题 我应该如何从 couchdb 中的给定数据库中检索所有文档的文档 ID 我编写了这段代码来检索所有文档 docs CouchRest get http localhost 5984 competency1 all doc
  • 在 Erlang 中是否有一种惯用的方法来对函数参数进行排序?

    似乎列表模块中的不一致 例如 split 将数字作为第一个参数 将列表作为第二个参数 而 sublists 将列表作为第一个参数 将 len 作为第二个参数 好的 讲一下我记得的一些历史以及我的风格背后的一些原则 正如克里斯蒂安所说 图书馆
  • gen_server中的数据在supervisor重启后还会保留吗?

    我有一个启动许多 gen server 的主管 每个 gen server 都有大量的数据加载 这需要花费大量的时间 我想知道当错误发生时 存储在 gen server 状态及其进程字典中的数据是否会保留以供下次启动 这样我就不需要再次初始
  • Erlang Supervisor 重新启动与已关闭主机的连接的策略

    我使用 erlang 作为服务之间的桥梁 我想知道人们对处理断开的连接有什么建议 我正在从本地文件获取输入并将它们通过管道传输到 AMQP 可以想象 AMQP 代理可能会崩溃 对于这种情况 我想继续重试连接到 AMQP 服务器 但我不想将
  • 清理 couchdb 并重新启动

    清理命令是什么CouchDB请 如果我想disable and re start我的CouchDB命令是什么 Thanks CouchDB 可以从以下位置启动 停止 重新启动 etc init d couchdb or etc rc d c
  • 从 CouchDB 检索分层/嵌套数据

    我对 couchDB 很陌生 甚至在阅读之后 最新存档现已删除 http wiki apache org couchdb How to store hierarchical data 通过 将每个节点的完整路径存储为该节点文档中的属性 ht
  • 如何删除带有空“”文档 ID 的 couchdb 文档?

    我在数据库中看到的文档是这样的 id rev 1 2f11e026763c10730d8b19ba5dce7565 禁止 必须提供最新的 rev以更新现有包 我在文档中看到的所有内容都显示引用带有 ID 的文档 但这当然不可能发生 我不太确
  • 获取ERLANG中的最长公共子序列

    我是这个 ERLANG 的新手 我了解基础知识 这就像计划 但范围更广 我知道如何创建一个函数 但在创建一个获取最长公共子序列的函数时遇到问题 lcs str1 str2 是一个接受两个字符串并输出一个整数的函数 lcs algorithm
  • Erlang dict的时间复杂度

    我想知道 Erlang OTP 是否dict模块是作为哈希表实现的 在这种情况下它是否能提供这样的性能 平均情况 Search O 1 n k Insert O 1 Delete O 1 n k 最坏的情况下 Search O n Inse
  • Erlang:到 Python 实例的端口没有响应

    我正在尝试通过 Erlang 端口与外部 python 进程进行通信 首先 打开一个端口 然后通过 stdin 将消息发送到外部进程 我期待在进程的标准输出上得到相应的答复 我的尝试如下所示 open a port Port open po

随机推荐