如何实现jQuery的直接上传到Cloudinary上的node.js(How to impleme

2019-08-01 23:42发布

我想通过自己的jQuery插件,以使Node.js应用程序中实现直接上传到Cloudinary,并想知道如果有人能帮助我关闭自己的例子有些差距。

这里的博客文章,解释如何做到这一点:

http://cloudinary.com/blog/direct_image_uploads_from_the_browser_to_the_cloud_with_jquery

在“其他发展框架和高级的用法”一节中,我卡上的部分是:

  • “设置数据表单数据要上传API则params的JSON表示。必填字段是API_KEY,时间戳,签名和回调。”

更具体地说:

  • “签名需要在服务器端进行正确的验证产生的。”

似乎没有要怎么实现这一点正是任何例子。

的例子是:

<input name="file" type="file" 
       class="cloudinary-fileupload" data-cloudinary-field="image_upload" 
       data-form-data=" ... html-escaped JSON data ... " ></input>

和数据格式数据的转义JSON内容是:

{ "timestamp":  1345719094, 
  "callback": "https://www.example.com/cloudinary_cors.html",
  "signature": "7ac8c757e940d95f95495aa0f1cba89ef1a8aa7a", 
  "api_key": "1234567890" }

你怎么去生成签名? 我明白我需要做的这node.js中,它看起来像它需要时生成的形式发生,虽然从我可以告诉签名需要包括时间戳 - 这肯定会由当时的用户已经过时已填写的表单?

对于要求认证的文件是在这里: http://cloudinary.com/documentation/upload_images#request_authentication

在cloudinary_npm模块,我使用的,有一个方法uploader.coffee称为direct_upload这似乎是一个帮助做到这一点,但我不是如何实际结合它一起清楚。

两个框架在博客文章,Rails和Django的,抽象的这种复杂性通过自己的助手,如实际例子在Django添加{{ form.image }}到您的形式,从结果输出image = cloudinary.forms.CloudinaryJsFileField() -遗憾的是如何在任何其他服务器端环境中复制,这是不包括在内。

如果任何人都可以对这个有何启示,或分享如何使工作结束到终端的一个要点或例子,我会非常感激。

Answer 1:

请大家看看uploader.image_upload_tag在https://github.com/cloudinary/cloudinary_npm/blob/67b7096c7fac2c2bed06603912966495d59dfa34/lib/uploader.coffee#L220它返回的HTML,可以连同jquery.cloudinary使用的输入标签.js文件直接上传图片到cloudinary。 这将是故宫(下周预期)的下一个版本的一部分。 至于时间戳 - 签名的有效期为1个小时,所以应该有充足的时间为用户上传的图片。



Answer 2:

如果您使用的NodeJS,这可能会帮助

var querystring = require('querystring');

var toHash = querystring.stringify(req.query) + secret;

var signature = sha1(toHash);

function sha1(data) {
var generator = crypto.createHash('sha1');
generator.update(data)
return generator.digest('hex')
}


文章来源: How to implement jQuery direct upload to Cloudinary on node.js