如何在node.js上实现jQuery直接上传到Cloudinary

Jed*_*son 8 javascript jquery node.js cloudinary

我正在尝试通过他们的jQuery插件直接上传到Cloudinary到Node.js应用程序,我想知道是否有人可以帮助我填补他们的示例中的一些空白.

这是博客文章,解释了如何做到这一点:

http://cloudinary.com/blog/direct_image_uploads_from_the_browser_to_the_cloud_with_jquery

在"其他开发框架和高级用法"部分中,我坚持的部分是:

  • "将data-form-data设置为上传API参数的JSON表示.必填字段为api_key,timestamp,signature和callback.",

更具体地说:

  • "需要在服务器端生成签名以进行正确的身份验证."

似乎没有任何确切如何实现这一目标的例子.

例子是:

<input name="file" type="file" 
       class="cloudinary-fileupload" data-cloudinary-field="image_upload" 
       data-form-data=" ... html-escaped JSON data ... " ></input>
Run Code Online (Sandbox Code Playgroud)

数据表单数据的未转义JSON内容是:

{ "timestamp":  1345719094, 
  "callback": "https://www.example.com/cloudinary_cors.html",
  "signature": "7ac8c757e940d95f95495aa0f1cba89ef1a8aa7a", 
  "api_key": "1234567890" }
Run Code Online (Sandbox Code Playgroud)

你如何产生签名?我知道我需要在node.js中执行此操作,看起来它需要在生成表单时发生,尽管我可以告诉签名需要包含时间戳 - 这肯定会在用户发布时过时填写了表格?

请求身份验证的文档位于:http://cloudinary.com/documentation/upload_images#request_authentication

在我正在使用的cloudinary_npm模块中,有一个uploader.coffee被调用的方法direct_upload似乎是帮助它实现这一点,但我不清楚如何将它们实际绑定在一起.

这两个框架在博客文章Rails和Django中有真实的例子,通过他们自己的帮助器抽象出这种复杂性,例如你添加{{ form.image }}到表单中的Django ,它输出结果image = cloudinary.forms.CloudinaryJsFileField()- 不幸的是如何在任何其他服务器端环境中复制它不包括在内.

如果有人能够对此有所了解,或者分享关于如何使其端到端工作的要点或示例,我将非常感激.

Tal*_*Ami 2

请查看 uploader.image_upload_tag https://github.com/cloudinary/cloudinary_npm/blob/67b7096c7fac2c2bed06603912966495d59dfa34/lib/uploader.coffee#L220 它返回可与 jquery.cloudinary 一起使用的输入标签的 html .js 将图像直接上传到 cloudinary。它将成为 npm 下一个版本的一部分(预计下周某个时间)。至于时间戳——签名的有效期为1小时,因此用户应该有足够的时间上传图像。